将两个加密字符串与河豚进行比较 - php

Comparing two encrypted string with blowfish - php

我在 php 中使用河豚加密函数 (crypt()) 生成了一个加密字符串,并将其存储在数据库中。那么如何检查提交的密码是否正确?

例如。在注册期间,我将我的通行证定义为“1234”,然后生成一个随机密钥,然后我的河豚加密密码类似于“$2a$08$xPIviMLmVMHLQdzb$$$$.OdQVKDPJeK4KIcdqnngIgv41lILjKR”。那么,当用户回来时,如何检查 his/her 密码的正确性?是否有来自相同基本密码或其他有效方法的两个加密字符串的比较功能?提前致谢。

密码通常不加密,而是散列。无法从哈希重新生成原始密码。

要在 PHP 手册中找到更多关于密码散列的信息是一个很好的起点 PHP manual

只需将表单中的用户输入传递到 crypt 函数,并在数据库中添加哈希值。

例如:

<?php
if (crypt($passwordFromPost, $hashedPasswordInDb) == $hashedPasswordInDb)
{
   // User has been authenticated
}