我想知道是否有可能解密MD5密码
答案 0 :(得分:4)
我使用md5
自动为用户生成密码
如何加密这些密码,我将其视为真实密码
我认为你的意思是“解密”。你不能。 MD5是一种散列算法,它被设计成不可逆的。
不要为您的用户生成密码。您的流程应该是:
当用户登录时:
答案 1 :(得分:1)
只需将它们存储在加密的数据库中 - 这就是它的用途。
生成密码:
$characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
$your_password_length = 8;
$password_unencrypted = '';
for ($i = 0; $i < $your_password_length; $i++) {
$password_unencrypted .= $characters[rand(0, strlen($characters) - 1)];
}
现在加密
$password_encrypted = md5($password_unencrypted);
现在你有两个变量 - password_unencrypted和password_encrypted。例如,您可以通过邮件将password_unencrypted发送给用户,但DB应包含加密密码。当用户登录时,您应该将他的加密输入与DB中的加密密码进行比较:
//..get the md5 from DB to $password_encrypted and then
if (md5($_POST['users_password_in_form']) == $password_encrypted){
// ...log in...
}
答案 2 :(得分:1)
关于密码和数据库的安全性,如果密码经过哈希处理或加密,那么用户访问密码s is if he somehow acess the database itself (probably he got the password), so does it really make
的唯一方法是什么?
我在谷歌的第一次搜索结果中m asking cause we are trying to protect the user password, but if someone has acess to the database, he dont need the user password, he can make the changes on the database itself, and about the encrypting, i find on php manual that blowfish is the most indicated, but i
找到了一个在线解密器。
你怎么看?提前谢谢。