为什么不存储原始密码?

web*_*ber 6 security passwords

我是网络开发的新手.我可以存储用户的原始密码吗?我知道好的做法是使用salt存储散列密码,但为什么我们不存储原始密码?

是因为数据库容易被黑客攻击,所以哈希保护密码?还有其他原因吗?如果没有,我想存储原始密码,如果这是合法的.

Pal*_*tir 18

合法性取决于你所居住的国家.但也有最好的做法.最佳做法是加密用户的密码.通过这种方式,如果有人闯入您的数据库,他们将无法获得长密码列表,并在ebay,yahoo mail和gmail中尝试其中的每一个.用户通常对许多站点使用同一对用户名和密码.

正如Jon在评论中指出的那样,散列和加密之间当然存在差异.散列是一种单向的,数据破坏性的过程,它将任意长度的字符串作为输入,并输出一个固定长度的字符串.此字符串以这样的方式定义,即更改原始输入中的任何单个位将导致散列不同.因此,如果您有哈希,则无法重建原始文本(即无法恢复密码).

另一方面,正确加密是一种可以恢复原始密码,知道密钥,密码等的技术.

通常,您希望哈希密码,而不是加密它们:它没有必要,而且设置起来更复杂.你也不应该恢复密码:你只需要重新生成它们.

  • 投票给我,并删除我的.对于那些声称合法的人,我非常有兴趣知道你断言这是什么.你必须是非常好的律师才能了解全球各地的法律. (5认同)
  • 我认为值得说明加密和散列之间的区别,以及何时使用每一个.如果您需要能够恢复用户的密码,则可以使用加密.如果没有,那么散列将是更好的选择. (4认同)