我使用PHP crypt函数来确保密码安全,但是当我尝试将输入的密码与数据库中的密码进行比较时,它将无法正常工作.
@H_404_20@
我不知道该怎么说会增加比其他人已经说过的更多细节…
这是我在第一时间创建密码的代码:
$crypt_password = crypt($_POST['confirm-password']);
这是我试图与另一个函数中的密码进行比较:
$input_crypt_password = crypt($_POST['input-pw']); if ($input_crypt_password == $dbpassword){ // do change password function }
这不起作用.
当我打印两个密码时,它们是不同的.
为什么密码不同,即使我输入相同的密码并在两者上都使用crypt功能?
任何人都能指出我正确的方向吗?
因此,在现代的散列/解散算法中,使用标准散列函数(例如MD5 / SHA256)存储密码是不安全的,因为它可以快速轻松地取消这种类型的条目.
在其他答案和评论中引用的password_hash()应该是安全存储密码的第一种方式,因为它使用单向散列算法.
然后在回答您的原始问题时,使用hash_equals()函数来比较密码.