哪种加密方法最好基于64或MD5?

时间:2010-10-22 04:41:15

标签: encryption

我目前正在使用MD5加密将密码存储在数据库中。我们之前没有密码重置功能。但现在我们正在实施它。所以我无法解密MD5并将密码发送给用户。但是我可以这样做,如果它是在base64中加密的。现在我有点困惑,这是最好的加密方法 我已经对强密码进行了客户端验证(如8个字符长度,特殊字符等)。

4 个答案:

答案 0 :(得分:19)

Base 64不是加密机制,它是一种编码方案。它很容易逆转,因此它不是保护关键数据的好选择。

密码的常用方法是使用类似MD5的方法对它们进行哈希处理,然后存储哈希值。当用户再次登录时,对输入密码进行散列,并将其与存储的散列进行比较。

如果用户忘记密码,您应该无法告诉他这是什么密码。相反,允许他将其重置为其他东西(可能是他能记住的东西)。

另外,正如@Phil Brown提到的,MD5 is not considered a strong encryption mechanism。 SHA-1更适合这项任务。

Base 64编码通常用于通过仅允许ASCII文本的机制传输二进制数据。

答案 1 :(得分:6)

Base64不是加密,它是一种易于反转的编码机制。 MD5是单向加密哈希,但使用is not recommended because it is cryptographically weak

根据您的需要,您可能希望存储密码的哈希值(最好使用salt),可能使用SHA-256或更好。当用户忘记密码时,您会为他们生成一个随机的一次性密码,并强制他们重新创建密码,或者在验证一些凭据后让他们这样做。

答案 2 :(得分:3)

Base64和MD5是非加密方法。 Base64只是一种编码字符的方式,它绝对没有安全性 - 它与以纯文本格式存储密码一样好。 MD5是一个哈希函数,这意味着它是单向的,无法解密。

哈希绝对是要走的路。 MD5没问题,但你应该切换到一个更安全的功能,如SHA-256。

对于“忘记密码”功能,永远不会存储用户的密码并将其发回给他们。相反,为它们生成(随机)临时密码,以便他们可以登录并更改它。

答案 3 :(得分:1)

最佳做法是使用MD5存储密码哈希(或者更好的SHA256)。

不要进行密码恢复。相反,当用户忘记密码时,请创建一个新的随机密码并将其发送给他们。然后,他们可以登录并将密码设置为他们喜欢的内容。更加安全。