我把我大学网站的密码存储在我们自己的服务器上。我使用MD5加密器存储密码。但我所怀疑的是,既然解密器在那里,我也可以解密密码并使用它们。我是如何保护这些密码的。
发布于 2013-12-03 13:43:25
MD5不是加密算法。这是一种散列算法。散列算法是单向的.没有解密器。
散列用于生成文本字符串的指纹。反向工程从哈希输入应该是不可能的。当哈希函数是加密安全的时,没有比尝试所有可能的输入更有效的方法了,直到您找到一个具有相同哈希的输入。
您如何在密码系统中应用此方法?
当用户在注册过程中告诉您他们的密码时,您不会保存它。生成密码的哈希,将哈希保存在数据库中,然后忘记曾见过明文密码。当用户尝试登录时,他们会给你一个密码。生成该密码的哈希,当它与数据库中的哈希匹配时,将它们输入。
但是请注意,MD5不再是密码加密的好选择。
出于这些原因,您应该在可能的情况下使用另一种算法。密码加密的一个很好的选择是bcrypt,因为它是专门为此目的而设计的。当您的开发框架没有现成的实现时,可以将沙二视为更容易获得实现的另一种选择。它并不比MD5慢得多,只要有足够的计算能力,它就更容易破解,但它没有像MD5这样的致命漏洞。对于低安全系统来说还是足够的。
https://security.stackexchange.com/questions/46370
复制相似问题