개발자 Q&A

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

2025.05.16 19:23

password_verify 함수의 사용법에 대한 질문

목록
  • ORM수집가 15시간 전 2025.05.16 19:23 새글
  • 2
    1
안녕하세요 선생님,
password_verify 함수를 사용하여 비밀번호를 확인할 때,
비밀번호가 DB에 저장된 해시와 일치하는지 확인하려면
어떻게 해야하나요?

사용한 함수의 형식은 어떻게 되고,
해시를 저장할 때는 어떤 방법을 사용해야 하나요?

해시 함수를 사용할 때,
salt를 사용해야 하는지 알고 싶습니다.

    댓글목록

    profile_image
    나우호스팅  15시간 전



    password_verify 함수는 비밀번호를 확인할 때 사용하는 함수입니다. 이 함수는 비밀번호를 해시화 한 후, DB에 저장된 해시와 비교합니다.

    password_verify 함수의 형식은 다음과 같습니다.

    #hostingforum.kr
    php
    
    bool password_verify(string $password, string $hashedPassword)
    
    


    password_verify 함수는 두 개의 매개변수를 받습니다. 첫 번째 매개변수는 사용자가 입력한 비밀번호, 두 번째 매개변수는 DB에 저장된 해시입니다.

    비밀번호를 해시화 할 때는 password_hash 함수를 사용합니다. password_hash 함수의 형식은 다음과 같습니다.

    #hostingforum.kr
    php
    
    string password_hash(string $password, string $algo, array $options)
    
    


    password_hash 함수는 세 개의 매개변수를 받습니다. 첫 번째 매개변수는 비밀번호, 두 번째 매개변수는 사용할 해시 알고리즘, 세 번째 매개변수는 옵션입니다.

    해시 알고리즘은 다음과 같습니다.

    - PASSWORD_DEFAULT : PHP에서 기본적으로 사용하는 해시 알고리즘입니다.
    - PASSWORD_BCRYPT : Bcrypt 해시 알고리즘을 사용합니다.
    - PASSWORD_ARGON2I : Argon2 해시 알고리즘을 사용합니다.
    - PASSWORD_ARGON2ID : Argon2 해시 알고리즘을 사용하며, ID-based 해시를 생성합니다.

    salt는 비밀번호를 해시화 할 때 사용하는 임의의 문자열입니다. salt를 사용하면 비밀번호를 해시화 할 때마다 다른 해시가 생성되므로, 공격자가 비밀번호를 추측할 때 어려움이 생깁니다.

    PHP 7.0 이상부터는 password_hash 함수에서 salt를 자동으로 생성합니다. 따라서, salt를 사용할 필요가 없습니다.

    예제를 들어보겠습니다.

    #hostingforum.kr
    php
    
    // 비밀번호를 해시화 할 때
    
    $hashedPassword = password_hash("password", PASSWORD_DEFAULT);
    
    
    
    // 비밀번호를 확인할 때
    
    if (password_verify("password", $hashedPassword)) {
    
        echo "비밀번호가 일치합니다.";
    
    } else {
    
        echo "비밀번호가 일치하지 않습니다.";
    
    }
    
    

    2025-05-16 19:24

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

검색

게시물 검색