crypt() で奇妙な動作をしています。Zend での私のコードは次のとおりです。
$correct_password_hash = $this->getHelper('User')->generateHash('bd468cffe6b179d8e5ef30bd993d37e5','572906092501a20f4222a54.54479708');
$edited_password_hash = $this->getHelper('User')->generateHash('bd468cffe6b179d8e5ef30bd993d37e','572906092501a20f4222a54.54479708');
echo "Correct Password Hash - ".$correct_password_hash."<br/>";
echo "Edited Password Hash - ".$edited_password_hash;
md5 で生成された文字列をヘルパー関数の generateHash に最初のパラメーターとして渡し、salt を 2 番目のパラメーターとして渡します。生成されたハッシュを $correct_password_hash 変数に保存します。
同じヘルパー関数の 2 回目の呼び出しで、最初のパラメーターの末尾にある文字 5 を削除しました。2 番目のパラメーターは同じです。ただし、最初のハッシュと同じハッシュを生成します。
出力は次のとおりです。
正しいパスワード ハッシュ - 57CO1Lzyk81kk
編集されたパスワード ハッシュ - 57CO1Lzyk81kk
ヘルパーの generateHash は次のとおりです。
public function generateHash($md5, $salt)
{
return crypt($md5, $salt);
}
これは crypt() がどのように機能するはずですか?
ありがとう。