我想了解散列算法的工作原理,我的意思是在盐散列中,相同的明文会生成多个散列,因此当用户注册时该应用存储一个散列,然后他登录时,该寄存器中存在2个不同的散列,并分别说明该应用程序比较论文2哈希值?并验证此用户?
答案 0 :(得分:0)
添加盐并将其与哈希值一起存储在数据库中。 因此,这些储存的盐可以在以后的验证过程中使用。
这是对Salt密码学的最佳解释 https://blog.conviso.com.br/worst-and-best-practices-for-secure-password-storage/ enter image description here
答案 1 :(得分:0)
哈希算法非正式地是确定性随机数。确定性输入意味着哈希值永远不会改变。在某种意义上说是随机的,您无需计算就可以预测。
防止出现彩虹桌子;基本形式是将盐添加到密码中。盐对于每个用户必须是随机的。
在数据库中,将salt和Hash(salt | passwd)存储在两列中。
|username | Salt Columns | Hashed password Column |
| Alf | 0x819313134144 | 0x783184187Fba1123313 |
| Charlie | 0x83bf521ad922 | 0x39849ffd61e44123277 |
当用户将密码输入系统时,应用程序服务器从数据库中获取密码,计算Hash(salt | entered_passwd)并与密码中存储的Hash(salt | passwd)进行比较。
如果匹配,则登录成功。
如果您正在寻找一种保护密码的方法,请查看argon2的获胜者password hashing competition