をハッシュに「塩」を結合した後、私は正しいと正常に動作している次のコードを持ってログインできませんMySQLデータベースに入力されたとき、それはソルト値を作成します。..は、アルゴリズムのPHP/MySQLの
問題I私が直面しているのは、塩漬けの値を使ってログインしようとするときに、何かが私のコードから抜けている(このポストのコードの2番目のビットはログインである)問題を引き起こすものです。
$result = $conn->prepare("INSERT INTO members (name, username, email, salt, password, age, gender, gender_of_dogs) VALUES (:name, :username, :email, :salt, :password, :age, :gender, :gender_of_dogs)");
$result->bindParam(':name', $value1);
$result->bindParam(':username', $value2);
$result->bindParam(':email', $value3);
$result->bindParam(':salt', $salt);
$result->bindParam(':password', $hashedPassword);
$result->bindParam(':age', $value5);
$result->bindParam(':gender', $value6);
$result->bindParam(':gender_of_dogs', $value7);
$value1 = $_POST['name'];
$value2 = $_POST['username'];
$value3 = $_POST['email'];
$salt = uniqid('', true);
$value4 = $_POST['password'];
$value5 = $_POST['age'];
$value6 = $_POST['gender'];
$value7 = implode(',', $_POST['gender_of_dogs']);
$hashedPassword = md5($salt.$value4);
$result->execute();
echo "<h2>Thank you for registering, <br> You will now be redirected to the homepage...</h2>";
header("refresh:5; url=../index.php");
以下はログインしようとしたときのコードです.MySQLデータベースの固有のsalt値を取得していないため、ログインできません。
(少なくとも私はそれが問題だと思います。)
include('../db_connect.inc');
$username = $_POST['username'];
$password = $_POST['password'];
$salt = $_POST['salt'];
$hashedPassword = md5($salt.$password);
$query = $conn->prepare("Select * from dog_parks.members where username = :username_login and password = :password_login ");
$query->bindParam(':username_login', $username);
$query->bindParam(':password_login', $hashedPassword);
$query->execute();
$count = $query->rowCount();
$row = $query->fetch();
if ($count > 0) {
session_start();
$_SESSION['id'] = $row['username'];
header('location:home.php');
}
に追加own__パスワードハッシュを__rollいけないしてください。 PHPは['password_hash()'](http://php.net/manual/en/function.password-hash.php) と['password_verify()'](http://php.net/manual/エン/ function.password-verify.php)(私は一日 あなたのサイトを使用すると、ここでいくつかの[パスワードについて良いアイデア]あるかもしれませんが、それらを使用してくださいhttps://www.owasp.org/index.php/Password_Storage_Cheat_Sheet ) – RiggsFolly
そして、あなたのパンを通りの真ん中に落とすのと同じように、あなたの塩をPOSTしないでください! – RiggsFolly
エラー '$ _POST [' salt '] 'が設定されていないため、入力フィールドの名前を確認してください。あなたが提供するツールを使用している場合 – chris85