web*_*ber 6 security passwords
我是网络开发的新手.我可以存储用户的原始密码吗?我知道好的做法是使用salt存储散列密码,但为什么我们不存储原始密码?
是因为数据库容易被黑客攻击,所以哈希保护密码?还有其他原因吗?如果没有,我想存储原始密码,如果这是合法的.
Pal*_*tir 18
合法性取决于你所居住的国家.但也有最好的做法.最佳做法是加密用户的密码.通过这种方式,如果有人闯入您的数据库,他们将无法获得长密码列表,并在ebay,yahoo mail和gmail中尝试其中的每一个.用户通常对许多站点使用同一对用户名和密码.
正如Jon在评论中指出的那样,散列和加密之间当然存在差异.散列是一种单向的,数据破坏性的过程,它将任意长度的字符串作为输入,并输出一个固定长度的字符串.此字符串以这样的方式定义,即更改原始输入中的任何单个位将导致散列不同.因此,如果您有哈希,则无法重建原始文本(即无法恢复密码).
另一方面,正确加密是一种可以恢复原始密码,知道密钥,密码等的技术.
通常,您希望哈希密码,而不是加密它们:它没有必要,而且设置起来更复杂.你也不应该恢复密码:你只需要重新生成它们.