我在php中使用blowfish加密函数(crypt())生成了一个加密字符串,并将其存储在数据库中。如何检查提交密码的正确性呢?
例如。在注册过程中,我将我的传递定义为“1234”,然后生成一个随机密钥,然后我的河豚加密密码类似于“$ 2a $ 08 $ xPIviMLmVMHLQdzb $$$$$。OdQVKDPJeK4KIcdqnngIgv41lILjKR”。因此,当用户回来时,我如何检查他/她的密码的正确性?是否有来自同一基本密码或其他有效方式的两个加密字符串的比较功能?提前谢谢。
答案 0 :(得分:1)
只需将表单中的用户输入传递给crypt函数,并在数据库中使用哈希值。
例如:
<?php
if (crypt($passwordFromPost, $hashedPasswordInDb) == $hashedPasswordInDb)
{
// User has been authenticated
}
答案 1 :(得分:0)
密码通常不加密,但经过哈希处理。无法从哈希重新生成原始密码。
要了解有关PHP中密码哈希的更多信息,手册是一个很好的起点PHP manual