2

Lithiumフレームワークが実行されているPHP5.3Webサーバーがあります。

パスワードハッシュを次のように生成しましたCRYPT_BLOWFISH

public static function hash($password, $salt = null) {
    return crypt($password, $salt ?: static::salt());
}

彼らはこれでチェックされます:

public static function check($password, $hash) {
    return String::compare(crypt($password, $hash), $hash);
}

NodeJS同様のハッシュをチェックして生成することを可能にするスクリプトを探しています:

私はこれまでこれを試しました(今すぐ確認してください):

var c = crypto.createCipher('bf-cfb', password);
var res = c.update(hash);
res += c.final('utf8');

ここで(正確な変数ではありませんが、次のようになります):

var hash = '$2a$10$nA5CV2XWJGn0cbKxSHU3GOp29ypHNVJDglJ0iNFx2zFkfy3mrsRZK'; // from php
var salt = '$2a$10$nku2zgjB65zLdcVC1BIhG.'; // from php too
var password = 'passwordInClearTextToCheck'; // correct password to check

達成することは可能ですか?

4

1 に答える 1

0

Crypt() 関数は別のアルゴリズムを使用します。これは生の Blowfish 暗号化/復号化ではありません。node.js の Crypt() 実装はまだないため、パスワード + ソルトを SHA1/SHA256 などでハッシュすることをお勧めします。

于 2012-12-08T11:50:55.357 に答える