1.MD5 介绍
在使用数据库存储密码时,如果正常存储密码会以原码暴露在数据库表,这会非常危险。在存储密码等重要信息 我们可以使用MD5密码加密处理再存储到数据库。
2.MD5的使用
1. 我们需要导入
<dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.15</version> </dependency>
依赖包。
2. MD5的加密方法有两种 方法1.md5Hex(String参数)
2.方法2:md5.digest(); MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] bs = md5.digest(ceshi.getBytes()); String s1 = new String(new Hex().encode(bs));
3. MD5加盐加密
随机生成多位数数字的字符串(盐),将盐和密码接串用md5Hex方法生成md5密码。
然后将盐和md5密码组合成新的字符串 添加到数据库
我这里是生成16位的盐和密码一起生成md5密码。(场景--注册)
4.MD5组合密码 解密校验判断
(场景--登录)当用户登录输入密码,我们需要将组合密码拆分成盐和md5密码,再将用户登录的密码和拆分的盐 md5Hex方法生成新的md5密码。将新的md5密码和拆分出md5密码做校验判断,如果校验为true,则表示用户密码输入正确,放行或者跳转。否则表示密码输入错误 返回错误信息 密码输入错误
组合密码拆分
拆分之后 校验
5. 另外一种 快速加密方法
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;