Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP bin2hex() 함수란? 문자열을 16진수로 변환하는 방법

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 개발 시 꼭 알아두면 좋습니다.