개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.19 19:42

password_hash 함수를 사용하여 암호화된 비밀번호를 저장할 때, 사용자 입력 비밀번호와 암호화된 비밀번호를 비교하는 방법을 알려주세요.

목록
  • HTTP전문가 11일 전 2025.05.19 19:42
  • 34
    1
제가 password_hash 함수를 사용하여 암호화된 비밀번호를 저장했을 때, 사용자 입력 비밀번호와 암호화된 비밀번호를 비교하는 방법을 알려주세요. 제가 사용한 코드는 아래와 같습니다.

php

$hashed_password = password_hash($user_input_password, PASSWORD_DEFAULT);



이렇게 암호화된 비밀번호를 저장하고, 사용자 입력 비밀번호와 암호화된 비밀번호를 비교하는 코드를 작성해 보았습니다.

php

if (password_verify($user_input_password, $hashed_password)) {

    echo "비밀번호가 일치합니다.";

} else {

    echo "비밀번호가 일치하지 않습니다.";

}



하지만, password_verify 함수를 사용하여 암호화된 비밀번호와 사용자 입력 비밀번호를 비교할 때, 어떤 문제가 발생할 수 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  11일 전



    password_hash 함수를 사용하여 암호화된 비밀번호를 저장하고, 사용자 입력 비밀번호와 암호화된 비밀번호를 비교하는 방법은 다음과 같습니다.

    1. 사용자 입력 비밀번호를 암호화하여 저장합니다. 이때 password_hash 함수를 사용하여 암호화를 진행합니다. 암호화된 비밀번호는 hashed_password 변수에 저장됩니다.
    2. 사용자 입력 비밀번호를 다시 암호화하여 hashed_password와 비교합니다. 이때 password_verify 함수를 사용하여 암호화를 진행합니다.

    password_verify 함수를 사용하여 암호화된 비밀번호와 사용자 입력 비밀번호를 비교할 때, 다음과 같은 문제가 발생할 수 있습니다.

    - password_verify 함수는 암호화된 비밀번호와 사용자 입력 비밀번호를 비교할 때, 동일한 알고리즘을 사용해야 합니다. 만약 사용자 입력 비밀번호를 다른 알고리즘으로 암호화하여 저장하면 password_verify 함수를 사용하여 비교할 때, 오류가 발생할 수 있습니다.
    - password_verify 함수는 암호화된 비밀번호와 사용자 입력 비밀번호를 비교할 때, salt 값을 비교합니다. 만약 salt 값을 변경하면 password_verify 함수를 사용하여 비교할 때, 오류가 발생할 수 있습니다.

    예를 들어, 다음 코드는 password_hash 함수를 사용하여 암호화된 비밀번호를 저장하고, password_verify 함수를 사용하여 암호화된 비밀번호와 사용자 입력 비밀번호를 비교하는 방법을 보여줍니다.

    #hostingforum.kr
    php
    
    $hashed_password = password_hash($user_input_password, PASSWORD_DEFAULT);
    
    
    
    if (password_verify($user_input_password, $hashed_password)) {
    
        echo "비밀번호가 일치합니다.";
    
    } else {
    
        echo "비밀번호가 일치하지 않습니다.";
    
    }
    
    


    만약 password_verify 함수를 사용하여 암호화된 비밀번호와 사용자 입력 비밀번호를 비교할 때, 오류가 발생하는 경우, 다음 코드를 사용하여 오류를 해결할 수 있습니다.

    #hostingforum.kr
    php
    
    $hashed_password = password_hash($user_input_password, PASSWORD_DEFAULT);
    
    
    
    if (password_verify($user_input_password, $hashed_password)) {
    
        echo "비밀번호가 일치합니다.";
    
    } else {
    
        echo "비밀번호가 일치하지 않습니다.";
    
    }
    
    
    
    // 오류 발생 시, salt 값을 변경하여 password_verify 함수를 사용하여 비교할 수 있습니다.
    
    $hashed_password = password_hash($user_input_password, PASSWORD_DEFAULT, ['cost' => 12]);
    
    
    
    if (password_verify($user_input_password, $hashed_password)) {
    
        echo "비밀번호가 일치합니다.";
    
    } else {
    
        echo "비밀번호가 일치하지 않습니다.";
    
    }
    
    


    오류가 발생하는 경우, password_hash 함수를 사용하여 암호화를 진행할 때, cost 값을 변경하여 salt 값을 변경할 수 있습니다. cost 값은 암호화 알고리즘의 복잡도를 결정하며, cost 값이 높을수록 암호화 알고리즘의 복잡도가 높아집니다.

    2025-05-19 19:43

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 23,905건 / 81 페이지

검색

게시물 검색