PHP에서 회원 로그인 기능을 구현할 때 비밀번호 암호화 처리 과정을 살펴봅니다.

bcrypt를 이용하여 비밀번호를 암호화합니다. PHP 5.3.7 버전 이상에서 사용할 수 있습니다. PHP 5.5 버전 이상에서는 내장함수로 포함하고 있습니다. 추천하는 암호화 기법입니다.



1. 비밀번호를 암호화 하여 회원 DB Table에 기록하는 방법입니다.


<?

$id = "test";

$password = "1234567";  // 회원 가입시 입력받은 회원 비밀번호 


include "./password.php"; // 본 글 아래 첨부파일을 다운 받아 사용하세요. 

$hash = password_hash($password, PASSWORD_DEFAULT);  // 비밀번호 암호화 


// 회원가입시에는 비밀번호를 위의 암호화 과정을 거쳐 $hash 변수 값을 회원 DB Table에 저장합니다. 

$sql = "INSERT INTO member (num,id,password) VALUES ('$num', '$id', '$hash')"; 

if ($conn->query($sql) == TRUE) {

    echo "success";

} else {

    echo "Error";

}

$conn->close(); 

?>



2. 회원 로그인시 비밀번호를 비교하여 일치하면 로그인 세션을 생성합니다.


<?

$password = "1234567"; // 회원 로그인시 입력받은 비밀번호


// 회원 DB에서 회원 정보를 가져옵니다.

$result = mysql_query("SELECT * FROM  member WHERE id = '$id' LIMIT 1"); 

$array = mysql_fetch_array($result);

$hash_password  = $array['password'];


include "./password.php"; // 본 글 아래 첨부파일을 다운 받아 사용하세요. 

if (password_verify($password, $hash_password)) { // 비밀번호가 일치하는지 비교합니다. 

echo "비밀번호 일치 !!!";  // 비밀번호가 일치할 경우 로그인 세션을 생성합니다.

} else { 

echo "비밀번호 불일치 !!!";

}

?>



* 비밀번호 암호화 방법 중 오래전 부터 사용하던 md5() 암호화는 보안에 취약하기 때문에 사용하지 마세요.


password.php 파일을 아래 첨부합니다. 다운받아서 사용하시면 됩니다.


password.zip




+ Recent posts