我目前正在做一个非常安全的登录系统,但我是 crypt() 函数的新手,需要一些快速帮助。

我在注册过程中使用 crypt() 对密码字符串进行加密并将其保存到数据库中。但是,如何在登录期间解密 key ?否则我该怎么办?或者是否可能对提交的密码字符串做一些魔术来将其与数据库中的加密 key 进行比较?

最佳答案

crypt() 不加密密码,它会散列它们。根本区别在于,您无法取回散列密码(想想土 bean 饼——如果您有土 bean 饼,就无法取回土 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/

10-11 10:36