Php 篝火用什么函数散列密码?

Php 篝火用什么函数散列密码?,php,codeigniter,bonfire,Php,Codeigniter,Bonfire,我不知道这是CI还是篝火特定的问题,我意识到这不是一个特定的编程问题,但它确实妨碍了我在该环境中编写代码的能力 在bonfire/modules/users/controllers/users/下有一个控制器,它使用了一个名为login()的漂亮函数。我使用该函数和框架函数register()来满足我所有的登录/注册需求,但现在当我必须从头开始登录Facebook时,我需要比较两个密码 问题是我不能比较密码,因为它们是用一些古怪的散列加上盐散列的,我不知道它们用什么,答案也找不到 我的数据库存储

我不知道这是CI还是篝火特定的问题,我意识到这不是一个特定的编程问题,但它确实妨碍了我在该环境中编写代码的能力

bonfire/modules/users/controllers/users/
下有一个控制器,它使用了一个名为
login()
的漂亮函数。我使用该函数和框架函数
register()
来满足我所有的登录/注册需求,但现在当我必须从头开始登录Facebook时,我需要比较两个密码

问题是我不能比较密码,因为它们是用一些古怪的散列加上盐散列的,我不知道它们用什么,答案也找不到

我的数据库存储的散列值如
$2a$08$qujpuhg.hyh8o7ybgj1qfe1rvcio/dRIPJ.iaSbHm5P2qAbPTNy
我知道我不应该比较密码,但在这种情况下,我需要比较密码,因为我正在登录Facebook,我需要查看数据库中是否已经存在具有该id的用户。在这种情况下,id存储为用户的密码

那么框架使用什么函数来散列密码呢?

CI Bonfire使用(发音为“pH pass”)框架来散列密码

当您用户时,bonfire使用方法(在引擎盖下加载phpass框架!)创建散列密码

示例

$password=$this->auth->hash_password('password');
$hash=$password['hash'];
$iterations_used=$password['iterations'];
因此,您可以使用相同的算法手动使用该方法对任何字符串进行散列

Auth库中还有一个方法比较两个参数:输入字符串(
password
)作为第一个参数,哈希密码(
hash
)作为第二个参数。这可能有助于比较目的

示例

if($this->auth->check_password('password to check','HashedPassword'))
{
//密码匹配
...
}
如果密码和哈希匹配,则返回
bool(true)
,否则返回
false

这些方法也记录在手册中