現在、パスワードのハッシュにphp5を使用しています。SHA512のランダムソルトを変更する方法を知りたいです。次のコードをsha1からsha512に変更した後、ハッシュが失敗しました。以下は、パスワードをハッシュするためのコードです。
public function hashSSHA($password) {
$salt = mhash(rand());
$salt = substr($salt, 0, 15);
$encrypted = base64_encode(bin2hex(mhash(MHASH_SHA512, $password . $salt, true) . $salt));
$hash = array("salt" => $salt, "encrypted" => $encrypted);
return $hash;
}
/**
* Decrypting password
* @param salt, password
* returns hash string
*/
public function checkhashSSHA($salt, $password) {
$hash = base64_encode(bin2hex(mhash(MHASH_SHA512, $password . $salt, true) . $salt));
return $hash;
}
なんとか新しいユーザーを登録しましたが、登録したユーザーでログインしようとすると、ユーザー名またはパスワードがどこにあるかが表示されます。だから私はどこで間違ったことをしたのか知りたいです。ありがとう!