2013-08-20 3 views
0

암호를 crypt() 함수로 암호화했습니다. 사용자가 로그인을 원할 때 입력 한 암호로 데이터베이스에 저장된 암호를 어떻게 확인할 수 있습니까? 예에 대한로그인 페이지에서 암호를 확인할 수 있습니까?

: 새 사용자에 대해

$pass = "fgyi34".$pass."@1187Gh"; 

$hashed_password = crypt($pass); 
+0

[이 (비슷해 http://stackoverflow.com/questions/8199244/using-crypt-and-verifying-not-sure-how-it-works)? – machineaddict

+3

runnig sql 쿼리 – Garry

+0

을 실행하기 전에 사용자가 로그인 양식을 채우는 암호를 암호화해야합니다. 그러나 다른 출력을 낼 때마다 – Saeid

답변

0

.
crypt 암호를 데이터베이스에 저장하십시오. 기존 사용자
crypt 암호와 사용자가이 버튼을 제출 데이터베이스에 이전 암호화 되 암호로 암호화 되 비밀번호를 비교 클릭 할 때 변수에 저장을 위해

. 암호가 일치하지 않으면 암호가 잘못되었다는 메시지를 사용자에게 표시하십시오.

0

등록시 데이터베이스에 $ hashed_password를 저장하십시오. 임의의 번호를 생성

1) 것을 암호화 : 로그인에

0

크립트 암호가 암호 암호화를위한 다음 단계를 수행 그래서 되돌릴 수 없습니다 MySQL의 쿼리에 저장된 하나와 암호화 되 비밀번호를 확인 . 2) 암호화 후 데이터베이스 열 필드에 저장하십시오. 3) 로그인 할 때 입력 된 비밀번호를 다시 확인하고 다시 암호화하십시오. 4) 해시 된 비밀번호로 새 비밀번호를 확인하십시오.

0

Manual을 읽어보십시오.

해싱을 기반으로하는 선택적 소금 문자열입니다. 제공되지 않는 경우, 동작은 알고리즘 구현에 의해 정의되고 예기치 않은 결과

예 번호로 이어질 수

<?php $hashed_password = crypt('mypassword'); // let the salt be automatically generated /* You should pass the entire results of crypt() as the salt for comparing a password, to avoid problems when different hashing algorithms are used. (As it says above, standard DES-based password hashing uses a 2-character salt, but MD5-based hashing uses 12.) */ if (crypt($user_input, $hashed_password) == $hashed_password) { echo "Password verified!"; } ?> 

1

사용자가 로그인을 시도 할 때마다 그래서, 암호화 되 password에서 얻을 데이터베이스가 username이고 user inputhashed passwordcrypt으로 비교하십시오.

예 2

<?php 
    $username = $_POST["username"]; 
    $password = $_POST["password"]; 

    $passhash = "SELECT `password` FROM `table` WHERE `username` = '{$username}'"; 
    // execute the query and get the hashed password 

    if ($passhash) { 
    if (crypt($password, $passhash) == $passhash) { 
     echo "Password verified!"; 
    } 
    } 
?>