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

问题描述 投票:4回答:4

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

encryption
4个回答
19
投票

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

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

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

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

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


6
投票

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

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


3
投票

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

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

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


1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.