当前位置: 首页 > news >正文

北京免费网站制作百度收录量查询

北京免费网站制作,百度收录量查询,网站建设怎么制作模板,襄阳seo推广目录 一、问题 二、密码加密 1、MD5密码加密 2、BCryptPasswordEncoder加密(推荐) 2.1 特点 2.2 使用步骤 一、问题 在数据库表中的密码都是明文存储的,安全性太低 需求: 将密码加密后存储,提高安全性 二、密码加密…

目录

一、问题

二、密码加密

1、MD5密码加密

2、BCryptPasswordEncoder加密(推荐)

2.1 特点

2.2 使用步骤


一、问题

在数据库表中的密码都是明文存储的,安全性太低

需求:

将密码加密后存储,提高安全性

二、密码加密

1、MD5密码加密

MD5讯息摘要演算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码杂凑函数,可以产生出一个128位元(16位元组)的散列值(hash value),用于确保信息传输完整一致。

功能:

输入任意长度的信息,经过处理,输出为128位的信息
不同的输入得到的不同的结果,结果与输入都是一一对应的

可以使用Spring提供给我们的工具类DigestUtils的md5DigestAsHex方法

        //密码比对(使用MD5加密)//对前端传过来的明文密码进行MD5加密处理password = DigestUtils.md5DigestAsHex(password.getBytes());if (!password.equals(employee.getPassword())) {//密码错误throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR);}

2011年后MD5加密算法可以被反推出来明文,被破解,已经不推荐使用

2、BCryptPasswordEncoder加密(推荐)

BCrypt 是一种密码散列函数,即单向函数。且每次加密过后的值都不一样!

2.1 特点

加密

注册用户时,使用SHA-256+随机盐+密钥把用户输入的密码进行hash处理,得到密码的hash值,然后将其存入数据库中。

密码匹配

用户登录时,密码匹配阶段并没有进行密码解密(因为密码经过Hash处理,是不可逆的),而是使用相同的算法把用户输入的密码进行hash处理,得到密码的hash值,然后将其与从数据库中查询到的密码hash值进行比较。如果两者相同,说明用户输入的密码正确

2.2 使用步骤

导入依赖(仓库地址Maven Repository: org.springframework.security » spring-security-crypto (mvnrepository.com))

<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-crypto</artifactId><version>6.2.1</version>
</dependency>

添加加密器

在 SpringBoot 项目的配置文件中添加如下代码,用于注入 BCryptPasswordEncoder 加密器

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;@Configuration
public class PasswordEncoderConfiguration {@Beanpublic BCryptPasswordEncoder passwordEncoder(){return new BCryptPasswordEncoder();}
}

验证密码

在需要验证密码的地方,通过@Autowired注解注入密码加密器,然后使用 BCryptPasswordEncoder 的 matches 方法进行匹配

    @Autowiredprivate BCryptPasswordEncoder passwordEncoder;// 使用BCryptPasswordEncoder
// 密码比对
if (!passwordEncoder.matches(password,employee.getPassword())) {//密码错误throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR);
}

加密方法:用于更改密码时将用户输入的明文密码进行加密  

encode(明文密码)

匹配方法:用于比较输入的密码加密后与数据库中已加密的密码进行比对  

matches(用户输入的未加密的密码,数据库中已加密的密码)

源码:

    public String encode(CharSequence rawPassword) {if (rawPassword == null) {throw new IllegalArgumentException("rawPassword cannot be null");} else {String salt = this.getSalt();return BCrypt.hashpw(rawPassword.toString(), salt);}}public boolean matches(CharSequence rawPassword, String encodedPassword) {if (rawPassword == null) {throw new IllegalArgumentException("rawPassword cannot be null");} else if (encodedPassword != null && encodedPassword.length() != 0) {if (!this.BCRYPT_PATTERN.matcher(encodedPassword).matches()) {this.logger.warn("Encoded password does not look like BCrypt");return false;} else {return BCrypt.checkpw(rawPassword.toString(), encodedPassword);}} else {this.logger.warn("Empty encoded password");return false;}}

http://www.ds6.com.cn/news/24473.html

相关文章:

  • 网站建设的发票怎么做会计分录淘宝关键词搜索排行榜
  • 邵阳今日头条新闻sem和seo的关系
  • 建网站算法购物网站推广方案
  • logo设计竞标网站廊坊快速优化排名
  • 一起做网店网站打不开百度广告一天多少钱
  • 专业网站建设软件开发百度信息流广告怎么投放
  • 大连响应式网站制作seo优化的优点
  • 源代码 培训 网站seo优化网站百度技术
  • 台州网站建设技术支持长沙网络营销推广公司
  • 政务网站建设情况汇报百度指数介绍
  • 电子商务网站开发方式sem代运营公司
  • 山东省建设厅的网站营销推广网
  • 聊天网站制作教程重庆seo推广
  • xblog wordpress广州网站优化运营
  • 如何编写一个app关键词优化包含
  • 自己怎样建立个人网站怎样注册一个自己的平台
  • 创新网站建设工作室计算机基础培训机构
  • 万博法务网站网络推广公司加盟
  • 做安全宣传的是什么网站如何做好百度推广
  • 怎么查域名注册商seo营销方案
  • 眼镜东莞网站建设好项目推荐平台
  • 网站缩略图制作杭州疫情最新消息
  • 律师论坛网站模板seo分析师招聘
  • 深圳防疫最新政策福州seo建站
  • 柳市网站建设哪家好企业营销策划
  • 网站建设视频lseo全称
  • 建网站哪家好关键词优化方法
  • 高陵微网站建设网络广告人社区官网
  • wordpress centos安装教程国内专业seo公司
  • 手机网站建立宣传推广计划