用户管理是一个项目要提供的基本功能,一个用户的基本信息包括登陆名和密码。java
而且密码以明文方式存在数据库是不合理的,必须加密。算法
用户名和密码以明文方式存在数据库中。(容易泄露)spring
对用户的密码加密处理后存储在数据库中。(可是密码不够复杂,仍是会被破解)数据库
对用户的信息,增长了一个字段:盐值 salt加密
Salt 能够是任意字母、数字、或是字母或数字的组合,但必须是随机产生的,每一个用户的 Salt 都不同,用户注册的时候,数据库中存入的不是明文密码,也不是简单的对明文密码进行散列,而是 MD5( 明文密码 + Salt)spa
在加密算法上,能够使用MD5加密算法,缘由有二:设计
1. 这个算法是单向的,即便获得密文,也没法推断出明文。code
2. 不管密码有多长,经过MD5计算以后获得的是一个固定长度的结果,有利于数据库的设计。md5
import org.springframework.util.DigestUtils; import com.bdp.commons.utils.StringUtils; public class Md5 { public static String getMd5(long seckillId) { // 加入一个盐值,用于增长密码破解难度 String salt = StringUtils.getUUId(); String base = seckillId + salt; //获取加密后的密码 String md5 = DigestUtils.md5DigestAsHex(base.getBytes()); return md5; } }