Encryption 哪种加密方法是最好的Base64还是MD5?

Encryption 哪种加密方法是最好的Base64还是MD5?,encryption,Encryption,我目前正在使用MD5加密在数据库中存储密码。我们以前没有密码重置功能。但现在我们正在实施它。所以我无法解密MD5并将密码发送给用户。但如果它是用base64加密的,我也能做到。现在我有点困惑哪一种是最好的加密方法。 我已经对强密码(如8个字符长度、特殊字符等)进行了客户端验证。Base 64不是一种加密机制,它是一种编码方案。它很容易反转,因此它不是保护关键数据的好选择 密码的常用方法是使用类似MD5的内容对密码进行散列,然后存储散列。当用户再次登录时,对输入密码进行散列,并将其与存储的散列进行

我目前正在使用MD5加密在数据库中存储密码。我们以前没有密码重置功能。但现在我们正在实施它。所以我无法解密MD5并将密码发送给用户。但如果它是用base64加密的,我也能做到。现在我有点困惑哪一种是最好的加密方法。

我已经对强密码(如8个字符长度、特殊字符等)进行了客户端验证。

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

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

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

另外,正如@Phil Brown提到的。SHA-1更适合这项任务


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

Base64不是加密,它是一种易于可逆的编码机制。MD5是一种单向加密散列,尽管它的用途很简单

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

Base64和MD5不是加密方法。Base64只是一种编码字符的方法,它完全不提供安全性——它就像以纯文本形式存储密码一样好。MD5是一个哈希函数,这意味着它是单向的,无法解密

散列法无疑是一种可行的方法。MD5还可以,但您应该切换到更安全的函数,如SHA-256


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

最佳做法是使用MD5存储密码哈希,就像现在一样(甚至更好的是SHA256)


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

常见的忘记密码方法是重置密码,向用户发送新密码,并在用户登录时强制更改密码。另外,SHA1是一个比MD5更强的散列算法,在这个忘记密码的时刻,我是否能再次获得密码?@vinothkumar:你不能。你随机为他们生成一个全新的密码——不是他们自己选择的。此外,一旦他们得到密码重置,我会考虑锁定帐户,如果他们无法改变他们的密码在一段时间后,因为电子邮件是以明文发送。请阅读这个以前的问题+答案:不要在客户端验证,除非你没有好的验证被打破。如果有人在某个时候编写了备用客户机,您不希望他们在您的安全性上捅洞。您也可以在客户端进行检查,但这只是为了避免往返。Md5哈希不如以前那么安全,至少使用sha1,而且sha256(据我所知)足够安全。@Joakim:Md5从来没有那么安全。@Amber确实如此,但现在我们知道它是不安全的,并且人们都知道如何利用这些漏洞。