>  기사  >  백엔드 개발  >  PHP 문자열을 16진수로, 16진수를 문자열로 변환할 때 잘못된 결과가 나타나는 이유는 무엇입니까?

PHP 문자열을 16진수로, 16진수를 문자열로 변환할 때 잘못된 결과가 나타나는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-09 10:52:02402검색

Why Do My PHP String to Hex and Hex to String Conversions Produce Incorrect Results?

PHP 문자열을 16진수로, 16진수를 문자열로 변환

PHP에서는 strToHex() 및 hexToStr()이라는 두 가지 함수를 사용하여 문자열과 16진수 표현 간의 변환을 수행할 수 있습니다. . 그러나 암호화에 XOR을 사용할 때 변환된 16진수 값이 잘못된 결과를 생성하는 일반적인 문제가 발생합니다.

문제: 16진수 및 문자열 변환의 불일치

제공된 strToHex() 및 hexToStr을 사용하는 경우 () 이진 문자열("this is the test")과 16진수 표현 사이를 변환하는 함수 (12181d15501d15500e15541215712), 디코딩된 결과 문자열("↕↑↓§P←§P♫§T↕§q")이 원본과 다릅니다.

해결책: 내장 PHP 함수 사용

번거로움 없는 대안을 위해 PHP는 변환을 위한 내장 기능을 제공합니다. 2진수 문자열과 16진수 표현 사이:

  • bin2hex()는 2진수 문자열을 16진수 표현으로 변환합니다.
  • hex2bin()은 변환합니다. 16진수 문자열을 바이너리로

사용 예:

$binaryString = "that's all you need";
$hexRepresentation = bin2hex($binaryString); // Result: 74686174277320616c6c20796f75206e656564

$decodedBinaryString = hex2bin($hexRepresentation); // Result: that's all you need

이러한 내장 기능은 안정적이고 정확한 변환을 제공하여 사용자 정의 기능을 사용할 때 발생하는 불일치를 제거합니다.

위 내용은 PHP 문자열을 16진수로, 16진수를 문자열로 변환할 때 잘못된 결과가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.