MD5 与密码编码?

发布于 2024-12-23 03:20:53 字数 166 浏览 4 评论 0原文

我正在为一个站点构建一个受密码保护的登录系统,并且遇到了两个 MySQL 函数来加密用户的密码:MD5()ENCODE()

它们似乎都对其进行了加密,但我想使用更安全的一个。这里是否有明显的赢家,或者这只是一种偏好情况?谢谢!

I'm building a password protected login system for a site, and I have run into two MySQL functions to encrypt the user's password: MD5() and ENCODE().

They both seem to encrypt it, but I want to use whichever one is more secure. Is there a clear winner here, or is it just a preference situation? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

月寒剑心 2024-12-30 03:20:53

使用 bcrypt。不要使用 md5()encode()

Use bcrypt. Don't use md5() or encode().

摇划花蜜的午后 2024-12-30 03:20:53

以下是每个功能的简要说明:

  • 编码:对字符串进行编码(不加密),也可以解码。任何可以运行 decode 的人都可以访问密码。
  • MD5:加密字符串,并且不应该是可解密的。确定密码是否正确的方法是通过比较两个加密字符串。但是,算法存在严重缺陷,不应使用。
  • SHA2(字符串,512) :加密字符串,并且不应被解密。确定密码是否正确的方法是通过比较两个加密字符串。这个算法比MD5强得多。

当涉及到使用哈希值(单向加密)时,对你的哈希值进行加盐是一种很好的做法。哈希值。这可以防止潜在的攻击者使用已知哈希值的数据库来快速发现密码。

简而言之,encode 是完全不安全的,MD5 是不安全的,而带有 salt 的 SHA2(string, 512) 也是一个不错的选择。

Here is a brief explanation of what each one does:

  • Encode: Encodes (does not encrypt) the string, and can also be decoded. Anyone who can run decode can get access to the password.
  • MD5: Encrypts the string, and is not supposed to be decryptable. The way you determine whether the password is correct is by comparing the two encrypted strings. However, the algorithm is badly flawed and should not be used.
  • SHA2 (string, 512): Encrypts the string, and is not supposed to be decryptable. The way you determine whether the password is correct is by comparing the two encrypted strings. This algorithm is far, far stronger than MD5.

When it comes to using hashes (one-way encryption), it is a good practice to salt your hashes. This prevents potential attackers from using a database of known hashes to rapidly discover passwords.

In short, encode is totally insecure, MD5 is insecure, and SHA2(string, 512) with salt is not a bad choice.

野味少女 2024-12-30 03:20:53

MD5、SHA1等算法不是加密,而是将任意长度的源文本散列成固定长度的输出字符串。并且不要使用它们来保护您的用户的密码。

告诉你一个好办法。问一个秘密问题。这个秘密问题的答案将是我们密码加密算法的秘密密钥。现在您使用 MD5 或其他任何方式来散列这个答案。现在使用此哈希作为密钥加密密码(使用对称密钥算法,例如 AES)。这在某种程度上会有所帮助,这样如果用户忘记了密码,那么只有该用户而没有其他人能够恢复密码。

Algorithms like MD5, SHA1 are not encrypting but hashing the source text of any length to a output string of fixed length. And donot use them to protect your user's password.

Let me tell you a good way. Ask for a secret question. Answer of this secret question will be the secret key of our password encryption algorithm. Now you use MD5 or whatever to hash this answer. Now encrypt the password using this hash as secret key (use symmetric key algorithms such as AES). This will help in a way, so that if the user forgets his password, then only that user and no one else will be able to recover the password.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文