我目前正在做一个非常安全的登录系统,但是我是crypt()函数的新手,需要快速帮助.
我在注册期间使用crypt()加密密码字符串并将其保存到数据库中.但是,如何在登录期间解密密钥?或者我应该怎么做?还是可能会对提交的密码字符串做一些魔术,以将其与数据库中的加密密钥进行比较?
解决方法:
crypt()不加密密码,而是对其进行哈希处理.根本的区别是,您不能找回哈希密码(想想哈希布朗-如果您有哈希布朗,就不能找回土豆).
因此,您将相同的函数应用于输入,并将其结果与数据库中存储的值进行比较:
$stored_pw = get_hashed_password_from_db($_POST['username']);
crypt($_POST['password'], $stored_pw) == $stored_pw
阅读documentation on crypt()
,以了解上述代码背后的“魔力”.