2017-03-29 7 views
1

私はPHPを使用していますcrypt()。ここで私はcrypt()を使ってパスワードを保存しました。ログイン時にPHPで暗号化されたパスワードを一致させる方法は?

ログイン時に、入力パスワードとログインパスワードにパスワードを一致させたいが、同じパスワードでランダムな文字列を作成するたびに暗号化する。

以下はログインコードです。

$user_name=$_REQUEST['username']; 
$salt = ""; 
echo $password=crypt($_REQUEST['password'], $salt); 

$query ="select username , password from users where username = '".$user_name."'"; 
$result = mysqli_query($con , $query); 
$row = mysqli_fetch_assoc($result); 

echo "<pre>";print_r($row);exit; 

ログインが出て、私のパスワードが同じ123それは二つの異なる結果を生成していますため、123でここ

$1$oIllNdlE$y23rdM6qp4sv/P/bgfUE7/  //user input 

Array 
(
    [username] => sradha 
    [password] => $1$dI1IgbiD$NsfWU0fOHOzNEFbd7Vrx.0 //from data base 
) 

を置きます。以下

記号にいる間、私はDBに挿入していたコードです:

user_name=$_REQUEST['username']; 
$salt = ""; 
$password=crypt($_REQUEST['password'], $salt); 
mysqli_query($con , "INSERT INTO users (username , password) VALUES ('sradha' , '".$password."')"); 

暗号を使用して、パスワードと一致するように、どのように任意の提案、?

答えて

1

Crypt関数は毎回異なるデータを返します。 hash_equal関数を使用して、暗号化された文字列を比較することができます。

+0

有効な塩を加えた後、毎回異なるデータを返さない。 – sradha

関連する問題