我在php中使用河豚加密函数(crypt())生成了一个加密字符串,并将其存储在数据库中。那么如何检查提交的密码的正确性呢?
例如,在注册期间,我将我的通行证定义为"1234",然后生成一个随机密钥,然后我的河豚加密密码,例如"$2a$08$xPIviMLmVMHLQdzb$$$$$$。OdQVKDPJeK4KIcdqnngIgv41lILjKR."那么,当用户回来时,我该如何检查他/她的密码是否正确?是否有来自同一基本密码的两个加密字符串或其他有效方式的比较功能?提前谢谢。
只需将用户输入从表单传递到 crypt 函数中,并在数据库中使用哈希值。
例如:
<?php
if (crypt($passwordFromPost, $hashedPasswordInDb) == $hashedPasswordInDb)
{
// User has been authenticated
}
密码通常不加密,而是散列。无法从哈希重新生成原始密码。
要了解有关PHP中密码散列的更多信息,该手册是一个很好的起点PHP手册