我的问题是,关于河豚,我如何从mcrypt中获得与从crypt中获得的相同的结果?
我想使用the phpass framework进行密码散列和验证。只要你有PHP5.3,它就能工作得很好,因为blowfish包含在crypt()中。我的主机正在运行PHP5.2.x和mcrypt库。
浏览文档并用谷歌搜索有关blowfish with crypt的内容,结果似乎是'$a2$',两个字符的迭代值,'$',盐(填充或剪切到22个字符),然后是代表散列的32 base64字符串。
我的问题是我找不到对MCRYPT_MODE_modenames有意义的解释。我如何给mcrypt()提供我想要的迭代次数呢?或者这两个函数使用的是不同形式的河豚,而不是交叉翻译?
发布于 2011-07-16 20:26:42
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是blowfish的双向加密算法,它的密钥最大可达448位。crypt内部的blowfish是bcrypt,它基于blowfish,但设计用于在对密码进行哈希处理时存储密码。这就是所谓的单向加密。
https://stackoverflow.com/questions/6542173
复制相似问题