我正在为一个站点构建一个受密码保护的登录系统,并且我遇到了两个MySQL函数来加密用户的密码:MD5()和ENCODE()。
他们两个人似乎都加密了,但我想用哪个更安全。这里是否有明确的赢家,还是仅仅是一种偏好情况?谢谢!
发布于 2011-12-26 22:37:26
发布于 2011-12-26 22:27:19
使用bcrypt。不要使用md5()
或encode()
。
发布于 2011-12-26 22:37:23
像MD5、SHA1这样的算法并不是加密,而是将任意长度的源文本哈希为固定长度的输出字符串。不要用它们来保护用户的密码。
让我告诉你一个好办法。问一个秘密的问题。这个秘密问题的答案将是我们密码加密算法的密钥。现在,您可以使用MD5或其他什么工具来散列这个答案。现在,使用此哈希作为秘密密钥加密密码(使用对称密钥算法,如AES)。这将在某种程度上有所帮助,这样如果用户忘记了他的密码,那么只有该用户,而不是其他人将能够恢复密码。
https://stackoverflow.com/questions/8641796
复制相似问题