PHP 해시 함수의 정의
해시 함수(hash function)는 임의의 크기를 가진 데이터를 고정된 크기의 데이터로 변환(매핑)할 수 있는 함수를 말합니다. 해시 함수가 반환하는 값을 해시 값(hash value), 해시 코드(hash code), 다이제스트(digest), 또는 간단히 해시(hash)라고 부릅니다.
PHP에서는 내장 함수인 hash()를 사용하여 다양한 해싱 알고리즘을 손쉽게 적용할 수 있습니다. 이는 비밀번호 저장, 데이터 무결성 검증 등 보안 작업에 널리 활용됩니다.
문법(Syntax)
string hash( string $algo , string $data [, bool $raw_output = FALSE ] )
매개변수 설명
1. algo (알고리즘 이름)
사용하려는 해싱 알고리즘의 이름입니다. 예를 들어 "md5", "sha256", "haval160,4" 등이 있습니다.
2. data (데이터)
해싱 처리하고자 하는 원본 메시지(문자열)입니다.
3. raw_output (원시 출력 여부)
선택적 매개변수입니다. TRUE로 설정하면 원시(raw) 바이너리 데이터를 출력하고, 기본값인 FALSE로 설정하면 소문자 16진수(hexits) 형태의 문자열을 반환합니다.
실전 예제
아래 예제는 'sha256' 알고리즘을 사용하여 문자열을 해싱하는 방법을 보여줍니다.
<?php
echo hash('sha256', 'Weelcome Tutorials Point');
?>
출력 결과
dacbedc476c664e457b165580dd5eb491bc027c914504066c51f56b1116d56e0
정리
PHP의 hash() 함수는 알고리즘 이름과 데이터만 전달하면 되기 때문에 사용법이 매우 간단합니다. MD5나 SHA-256 같은 표준 알고리즘을 지원하며, 반환 형식도 16진수 문자열과 바이너리 중 선택할 수 있어 다양한 상황에 유연하게 대응할 수 있습니다.