关于ruby on rails:PHP和Bcrypt

PHP and Bcrypt

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do you use bcrypt for hashing passwords in PHP?

我正在使用PHP开发API。我想从中迁移的API的早期版本是使用Rails3构建的。

我只有一个问题。使用以下技术对用户存储的密码进行加密。

1
BCrypt::Engine.hash_secret(password, user.password_salt);

如何在PHP(codeigner)中执行相同的操作,以便用户可以继续使用他们的旧密码?

感谢大家的帮助!


我不确定是怎么做的,但是看看tank auth的源代码,它使用bcrypt。我认为如果内置库存在于系统中,那么使用它就足够聪明了,如果需要的话,还可以返回到包含的版本。


我认为您可以将crypt函数与blowfish算法一起使用:http://php.net/manual/en/function.crypt.php

另一种选择是使用mcrypt:http://www.php.net/manual/en/ref.mcrypt.php

编辑:实例

我要做的是:

1
$hashedPassword = crypt('password', '$2a$11$abcd');

像这样使用密码:

1
hash = crypt(password, salt);

$hashedpassword现在应该包含哈希。

基本上,为了使用吹鱼算法,盐的格式应该是:$2a$[2位成本参数]$[22位字母数字字符串]

要确定服务器上是否有河豚:

1
2
3
4
if (CRYPT_BLOWFISH == 1) {
    echo 'Blowfish:     ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') ."
";
}