2017-03-29 18 views
1

나는 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 
) 

을 넣어.

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

어떤 제안, 어떻게 토굴을 사용하여 암호와 일치하는 아래

는 잠시 기호에, 내가 DB에 삽입하고 코드입니다?

답변

1

Crypt 함수는 매번 다른 데이터를 반환합니다. hash_equal 함수를 사용하여 암호화 된 문자열을 비교할 수 있습니다.

+0

유효한 소금을 추가 한 후 매번 다른 데이터를 반환하지 않습니다. – sradha