了解哈希系统和算法?

时间:2018-10-27 17:27:16

标签: encryption hash cryptography password-protection password-encryption

我想了解散列算法的工作原理,我的意思是在盐散列中,相同的明文会生成多个散列,因此当用户注册时该应用存储一个散列,然后他登录时,该寄存器中存在2个不同的散列,并分别说明该应用程序比较论文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_pa​​sswd)并与密码中存储的Hash(salt | passwd)进行比较。

如果匹配,则登录成功。

如果您正在寻找一种保护密码的方法,请查看argon2的获胜者password hashing competition