如果文章对您有帮助,是我前进最大的动力!您当前位置:首页 > 技术心得 > java开发

MD5加salt盐值的加密算法详解,附实现代码(JAVA)

发布时间:2017-12-08 16:55:49编辑:刘强 阅读(

MD5加密算法相信大家都不陌生,但是如果直接将密码使用MD5加密的方式已经很不安全了,网上早已出现了MD5密码破解库,简单的密码很容易就能破解,及时使用多次MD5的方式加密,相同密码的散列值永远相同,黑客如果得知一个已知密码,那么所有使用这个相同密码的用户他都可以知道。

我们要做的是针对每个用户生成一个随机的salt,最好做到用户中没有重复的salt值。这样使得相同的密码加密后,每次会得到不同的salt和散列值,标准密码库不复存在,大大增加暴力破解难度。实现思路如下:

用户注册(或修改密码)时:

1)用户提供密码(以及其他用户信息);

2)系统为用户随机生成一个Salt值;

3)系统将Salt值和用户密码连接到一起,再进行MD5加密;

4)将MD5加密串和Salt值分别存入数据库中。

登录时:

1)用户提供用户名和密码;

2)系统通过用户名找到与之对应的MD5加密串和Salt值;

3)系统将Salt值和用户提供的密码连接到一起;

4)对连接后的值进行MD5加密;

5)用本次加密的MD5串和数据库中MD5串比较,相等则表示密码正确,否则表示密码错误。

密码校验工具类:

生成salt工具类:

关键字词:MD5+salt,系统安全,加密算法,java