次のコード スニペットがあります。
// bcrypt hash of 'password'
$hash = '$2y$10$4u0cQ.WEnwHDo.C5Nl1vm.shKA0beQ32wqzphSfzklAq9OcDM2nLu';
if(password_verify('password', $hash)) {
print_r('woohoo!');
}
else {
print_r('fubar');
}
あるサーバーでは正常に動作していますが (woohoo!)、別のサーバーでは動作しません。codepad.org に掲載したところ、そこでも失敗します。
問題は (コードパッドのページでわかるように) によって計算されたハッシュcrypt
の長さが、必要な 60 ではなく 13 であることです。
PHP 5.5 のみの機能を実装するために、github でircmaxel の password_compat ライブラリを使用していpassword_verify
ます。