Hash passward with salted value

回眸只為那壹抹淺笑 提交于 2019-12-11 17:41:02

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

1 盐值哈希的基本概念:

哈希密码利用特定的哈希函数将明文密码转换为密文。然而,这样的密码也不是非常安全的,黑客可以通过字典、彩虹表(网上就可以免费下载)对这种密码进行暴力破解,所以单纯的哈希密码还不足以应付安全问题。所以需要加入盐值(salt value)。

   带盐值的哈希密码,就是在原始密码的基础上添加一个“盐值”,然后对新生成的明文进行哈希,得到的密码密文,就是带盐值的哈希密码。 

2 工作原理:

带盐值的哈希密码算法设计思想:

在首次创建密码和修改密码时:

1)将用户提供的密码和系统生成的一个比较复杂的附加码(即盐值)进行结合,对结合的结果进行哈希运算;

2)然后系统为该用户随机生成一个指定长度的字节序列,把这个序列和刚刚哈希运算的结果进行结合,再进行哈希运算;

3)哈希结果与第二个盐值结合,得到最终的密文。存入数据库。


当用户登录时,相应的验证过程是:

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

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

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

4)对连接后的值进行散列,得到Hash'

5)比较HashHash'是否相等,相等则表示密码正确,否则表示密码错误。


参考资料:

http://blog.sina.com.cn/s/blog_64ffd1280101ehro.html

http://blog.csdn.net/dingzhun/article/details/7044221




标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!