bin2hex()는 PHP에서 문자열을 16진수(hexadecimal) 값으로 변환해 주는 내장 함수입니다. 이 함수는 데이터를 바이트(byte) 단위로 처리하며, 각 바이트에서 상위 니블(high nibble)이 먼저 변환된다는 특징이 있습니다.
bin2hex() 함수의 문법
bin2hex($string)
함수에 문자열을 인자로 전달하면, 해당 문자열을 16진수 표현 형태로 변환하여 반환합니다. 반환되는 문자열은 ASCII 코드 기준으로 각 문자가 두 자리 16진수 값으로 표현됩니다.
사용 예제
<?php
$my_str1 = "This";
$my_str2 = "is";
$my_str3 = "a";
$my_str4 = "sample";
print(bin2hex($my_str1));
echo "<br>";
print(bin2hex($my_str2));
echo "<br>";
print(bin2hex($my_str3));
echo "<br>";
print(bin2hex($my_str4));
?>
실행 결과
54686973
6973
61
73616d706c65
코드 설명
PHP 태그(<?php ?>) 안에서 네 개의 문자열 변수를 미리 정의한 뒤, 각각의 문자열에 대해 bin2hex() 함수를 호출합니다. 그리고 함수가 반환한 16진수 값을 화면에 출력합니다.
예를 들어 첫 번째 문자열 "This"의 경우 다음과 같이 변환됩니다.
- 'T' → 54 (ASCII 84)
- 'h' → 68 (ASCII 104)
- 'i' → 69 (ASCII 105)
- 's' → 73 (ASCII 115)
따라서 최종 결과는 54686973이 됩니다.
bin2hex() 함수의 활용 분야
bin2hex() 함수는 다음과 같은 상황에서 유용하게 사용됩니다.
- 바이너리 데이터의 안전한 전송: 이미지 파일, 암호화된 데이터 등 바이너리 값을 텍스트 환경(예: URL, JSON, 데이터베이스)에서 손상 없이 전달할 때 활용됩니다.
- 디버깅 및 데이터 검증: 문자열의 실제 바이트 값을 확인하여 인코딩 문제나 숨겨진 문자를 진단할 수 있습니다.
- 해시 및 암호화 결과 표현: md5(), sha1() 등의 해시 함수 결과를 사람이 읽기 쉬운 16진수 형태로 나타낼 때 참고할 수 있습니다.
참고: 16진수를 다시 문자열로 되돌리기
변환된 16진수 값을 원래 문자열로 복원하려면 pack() 함수를 사용할 수 있습니다.
<?php
$hex = bin2hex("Hello"); // 48656c6c6f
$original = pack("H*", $hex); // "Hello"
echo $original;
?>
이처럼 bin2hex()는 간단하지만 바이너리 데이터를 다루는 작업에서 매우 실용적인 함수이므로, PHP 개발 시 꼭 알아두면 좋습니다.