PDO 로 폼에서 입력받은 비밀번호 hash 해서 Database에 저장하는 법

조회수 1076회
$stmt = $dbh->prepare("INSERT INTO register (email, name, author, password) VALUES (:email, :name, :author, :password)");            
        $stmt->bindParam(':email',$email);
        $stmt->bindParam(':name',$name);
        $stmt->bindParam(':author',$author);
        $stmt->bindParam(':password',$password);

        $email = $_POST['email'];
        $name = $_POST['name'];
        $author = $_POST['author'];
        $password = $_POST['password'];

        $options = [
            'cost' => 11,
            'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM),
        ]; #솔트 (추가문자열 암호화 옵션 3번째 인자값)

        $hashpass = password_hash($password, PASSWORD_BCRYPT, $options); #암호와 코드

        if(password_verify($password, $hashpass)) 
        {
            $stmt->execute(); #true 쿼리 실행
        } 
        else
        {
            echo "쿼리가 실패하였습니다."; #false
        }

        print_r($hashpass);

위에 코드에서 비교에 성공해서 쿼리가 실행은 되지만 암호화 된 비밀번호 변수를 쿼리에 반영하는 법을 잘몰라서 패스워드가 그냥 저장됩니다.

해당 코드에서 무엇을 수정하면 암호화된 패스워드를 데이터베이스에 저장할수 있을까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)