我目前正在使用MD5加密将密码存储在数据库中.我们之前没有密码重置功能.但现在我们正在实施它.所以我无法解密MD5并将密码发送给用户.但是我可以做,如果它是在base64加密的.现在我有点困惑,这是最好的加密方法.
我已经对强密码进行了客户端验证(如8个字符长度,特殊字符等).
pka*_*ing 20
Base 64不是加密机制,它是一种编码方案.它很容易逆转,因此它不是保护关键数据的好选择.
密码的常用方法是使用类似MD5的方法对它们进行哈希处理,然后存储哈希值.当用户再次登录时,对输入密码进行散列,并将其与存储的散列进行比较.
如果用户忘记了密码,你就不应该告诉他这是什么密码.相反,允许他将其重置为其他东西(可能是他能记住的东西).
另外,正如@Phil Brown所提到的,MD5不被认为是一种强大的加密机制.SHA-1更适合这项任务.
Base 64编码通常用于通过仅允许ASCII文本的机制传输二进制数据.
Base64不是加密,它是一种易于反转的编码机制.MD5是一种单向加密哈希,但不建议使用它,因为它在加密方面很弱.
根据您的需要,您可能希望存储密码的哈希值(最好使用salt),可能使用SHA-256或更好.当用户忘记密码时,您会为他们生成一个随机的一次性密码,并强制他们重新创建密码,或者在验证一些凭据后让他们这样做.
Base64和MD5 不是加密方法。Base64只是一种编码字符的方式,它绝对不提供安全性-与以纯文本存储密码一样好。MD5是哈希函数,这意味着它是单向的并且不能解密。
散列绝对是必经之路。MD5可以,但是您应该切换到更安全的功能,例如SHA-256。
至于“忘记密码”功能,切勿存储用户密码并将其发送回给他们。而是为他们生成一个(随机)临时密码,以便他们可以登录和更改它。