phpass テスト プログラムhttp://www.openwall.com/phpass/phpass-0.3.tar.gzまたは python-phpass を使用し、プレーン テキストのパスワードにC?*|Y[j"KQ'%gfを使用します。 、および$P$9kS6tD8tVxajypvJ5837.bt2emepD8/をハッシュとして、次のように実行します。
<?php
#
# This is a test program for the portable PHP password hashing framework.
#
# Written by Solar Designer and placed in the public domain.
# See PasswordHash.php for more information.
#
require 'PasswordHash.php';
header('Content-type: text/plain');
$t_hasher = new PasswordHash(8, FALSE);
$correct2 = 'C?*|Y[j"KQ\'%gf';
$hash2 = '$P$9kS6tD8tVxajypvJ5837.bt2emepD8/';
print 'Hash: [' . $hash2 . "]\n";
print 'correct: [' . $correct2 . "]\n";
$check = $t_hasher->CheckPassword($correct2, $hash2);
if ($check)
{
print "Check IF THIS WORKScorrect: '" . $check . "' (should be '1')\n";
}
else
{
print "IT FAILED!!!!!!!!\n\n\n";
}
?>
ハッシュは phpBB3 (3.0.10) のもので、そのパスワードを phpBB3 に渡すと正しく機能します。
phpBB3 は、$P$ の代わりに $H$ を実行して、phpass 自体を使用することになっています。
この例の phpBB3 のデータベース エントリは次のとおりです。
qlc4pi000000";0;"127.0.0.1";1351902499;"testpass";"testpass";"$H$9kS6tD8tVxagypvJ5837.bt2emepD8/";1351902499;0;"tp@inva.lid.com";266402289712;"'' ";1351902544;1351902499;0;"''";"''";0;0;0;0;0;0;0;"en";0.00;0;"DM d, Y g:i a"; 2;0;"''";0;0;0;0;-3;0;0;"t";"d";0;"t";"a";0;1;0;1; 1;1;1;230271;"''";0;0;0;"''";"''";"''";"''";"''";"''";" ''";"''";"''";"''";"''";"''";"''";"''";"bf4ae169a5a21313";1;0;0
phpBB3 で使用されるプレーン テキストのパスワードは [C?*|Y[j"KQ'%gf] であり、ハッシュ (phpBB3 形式から変換されたものは [$P$9kS6tD8tVxagypvJ5837.bt2emepD8/] です) (パスワードとハッシュの両方が [] の間にあります) )
何が起こっているのか、なぜこれが phpass で機能しないのか、誰かが光を当てることができますか? これはフォーラムと同じマシン上にあり、phpBB3 フォーラムでも機能するため、問題なくログインできます。phpBB3 データベースに直接アクセスすると、外部から phpass で認証できないだけです。ただし、他のアカウントでも機能しますが、失敗するのは特定のアカウントのみです。