塩漬けのハッシュをデータベースに保存できました。今私が直面している問題は、ログインするためにそれらを比較するように設定する方法です。ハッシュをもう一度作成する必要がありますか?そしてもし私がそれをもう一度作るのであれば、それは違うだろうか?今のチェックでは機能していると言われていますが、ハッシュされる前にパスワードでサインすることはできません。
次のコードは、IVEは、これまで試したものです:ハッシングと塩が正しく比較されない
$con = mysqli_connect($DB_HOST,$DB_USER,$DB_PASSWORD,$DB_DATABASE);
if(!$con){
echo "Connection Error...".mysqli_connect_error();
}
else
{
//echo "Database connection Success...";
}
$user_name =mysqli_real_escape_string($con, $_POST["login_name"]);
$user_pass =mysqli_real_escape_string($con, $_POST["login_pass"]);
$cost = 10;
$salt = strtr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), '+', '.');
$salt = sprintf("$2a$%02d$", $cost) . $salt;
$sql_query = "select user_name,user_pass from user_info where
user_pass ='$user_pass' and user_name = '$user_name'";
$hash = crypt($user_pass, $salt);
if(crypt($user_pass,$hash)==$hash){
echo "works";
$result = mysqli_query($con,$sql_query);
if(mysqli_num_rows($result) >0)
{
$row = mysqli_fetch_assoc($result);
$name = $row["name"];
echo "Login Success..Welcome " .$name;
}
else
{
echo "Login Failed.......Try Again..";
}
}
代わりに[password_hash](http://php.net/manual/en/function.password-hash.php)を使用することを検討する必要があります。ランダムな塩とハッシュと同じ文字列に格納 – Machavity
また、[mcryptは死んだプロジェクトです](http://blog.remirepo.net/post/2015/07/07/About-libmcrypt-and-php-mcrypt) – Machavity
@Machavity 7.1で削除され、削除のためにスロットに入れられていません:https://wiki.php.net/rfc/mcrypt-viking-funeral – BeetleJuice