Hash함수 & MD5 함수

황인환·2024년 5월 2일

Hash함수

정의

임의의 길이를 갖는 데이터를 고정된 길이의 데이터로 변환시켜주는 함수이다. 이런 함수를 통해 얻어지는 값을 해시값 또는 해시코드라고 한다.

특징

일방향 데이터로써 데이터를 바꾸면 복구가 되지않는다. 즉, 평문을 알 수 없다. 이러한 특징으로 보안을 위해 사용된다.

역할

해시값의 비교를 통해 위변조및 무결성을 검증하는데 사용한다.

password_hash 사용법
hash함수는 password_hash (암호화할 문자열, 알고리즘,(옵션))으로 구성되어 있다.
입력한 값이 암호화된 비밀번호와 맞는지 확인하는 것은 password_verify 함수를 사용한다.

ex)password_hash

    <?php
      $password=1234;
      $hash_PW=password_hash($password, PASSWORD_DEFAULT);
      echo "password = ".$password."<br/>";
      echo "hash처리된 password = ".$hash_PW;
    ?>

결과

password_verify사용법

password_verify(비교할 문자열(사용자가 입력), hash처리된 문자열)를 사용한다.
사용자가 로그인하기위해 입력한 값과 암호화된 값이 같으면 True 다르면 False값을 보낸다.

ex) password_verify

    <?php
      $password=1234;
      $hash_PW=password_hash($password, PASSWORD_DEFAULT);
      $userInput=5678;
      $result=password_verify($password,$hash_PW);
      $result2=password_verify($userInput,$hash_PW);
      if($result){
        echo "result = Success<br/>";
      }else{
        echo "result = Fail<br/>";
      }
      if($result2){
        echo "result2 = Success<br/>";
      }else{
        echo "result2 = Fail<br/>";
      }
    ?>

결과

MD5

문자열에서 MD5해시값을 생성해주는 함수이다.
그러나 문자열이 같다면 같은 해시값으로 저장하기 때문에
비밀번호를 암호화 하여 저장하는 것에는 어울리지않는다.

사용법

md5(암호화할 문자열,[raw_output])
raw_output은 TRUE면 16바이너리 FALSE면 32바이너리로 변환합니다.
기본값은 FALSE

ex)

<p>md5('apple'): <?=md5('apple');?> </p>

결과

스터디 3주차 1일 2024/05/02

0개의 댓글