パスワードを暗号化する方法です。パスワードを暗号化してから検証しないでください
$password_encrypted = password_hash($password, PASSWORD_DEFAULT);
そして、これは私が値を取得し、それを確認する方法です。今ここに
<?php
include("config.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST") {
// username and password sent from form
$myusername = mysqli_real_escape_string($db,$_POST['uname']);
$mypassword = mysqli_real_escape_string($db,$_POST['psw']);
$result = mysqli_query(
$db,
"SELECT password FROM interna_dostop WHERE up_name = '$myusername'");
$row = mysqli_fetch_array($result);
$hash = $row['password'];
echo $hash;
echo $mypassword;
echo $myusername;
if (password_verify('$mypassword','$hash')) {
header('Location: another.php'); exit;
} else {
echo 'Invalid password.';
}
}
?>
は面白い部分です。これはfalseを返します。しかし、私がpassword_verify( 'mypass'、 'encrypted_pass')に入力すると、私は本当ですか?
アイデア?
* *暗号化*ではありません。 – Script47
***ハッシュする前に、[エスケープパスワード](http://stackoverflow.com/q/36628418/1011527)***または他のクレンジングメカニズムを使用する必要はありません。パスワードを変更すると、パスワードが変更され、不要な追加のコーディングが発生します。 –
password_verify( '$ mypassword'、 '$ hash')はpassword_verify($ mypassword、$ hash)に置き換えます。ここでは一重引用符は必要ありません。 –