使用MCRYPT_BLOWFISH模仿CRYPT_BLOWFISH

时间:2011-06-30 23:25:23

标签: php mcrypt blowfish phpass

我的问题是如何从关于河豚的地方获得与mcrypt相同的结果?

我想使用the phpass framework进行密码哈希和验证。只要您使用PHP 5.3就可以正常工作,因为[{1}}包含了河豚。 我的主机使用mcrypt库运行PHP 5.2.x.

通过文档和Google搜索关于河豚的漏斗,结果似乎是crypt(),两个字符的迭代值,'$a2$',盐(填充或切割为22个字符),然后表示哈希值的32 base64字符串。

我的问题是我无法找到对我有意义的'$'的解释。我如何提供MCRYPT_MODE_modenames我想要的迭代次数?或者这两种函数是否使用不同形式的河豚不能交叉翻译?

1 个答案:

答案 0 :(得分:4)

Mcrypt和crypt()是两个完全不同的功能。 Mcrypt是双向加密,而crypt是单向加密。据我所知,crypt()在php 5.2中。另外,如果我是你,我只会引用crypt()本身。而且我也会使用bcrypt。

 $hashed_password=crypt($password_to_be_hashed,'$2a$04$saltstringhere');

最后,只需在$ 2a $之后更改两位数内的两位数成本因子。这将允许您更改它所需的cputime量。记住它以对数方式上升(如果我没记错的话)。默认值为07。

最后,crypt_blowfish是河豚的双向加密算法,它可以获取高达448位的密钥。地穴内的河豚是bcrypt,基于河豚,但设计用于存储密码,因为它会散列它们。这称为单向加密。