我目前正在做一个非常安全的登录系统,但我是 crypt() 函数的新手,需要一些快速帮助。
我在注册过程中使用 crypt() 对密码字符串进行加密并将其保存到数据库中。但是,我如何才能在登录期间解密 key ?或者我应该怎么做?或者是否可以对提交的密码字符串施展魔法,将其与数据库中的加密 key 进行比较?
最佳答案
crypt()
不加密密码,它哈希它们。根本区别在于,您无法找回经过哈希处理的密码(想想炸薯饼 - 如果您有炸薯饼,就无法找回土 bean )。
因此您将相同的函数应用于输入并将其结果与存储在数据库中的值进行比较:
$stored_pw = get_hashed_password_from_db($_POST['username']);
crypt($_POST['password'], $stored_pw) == $stored_pw
阅读documentation on crypt()
了解上述代码背后的“魔力”。
关于php - 使用 crypt() 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8195689/