PHP では、文字列と 16 進表現の間の変換は、strToHex() と hexToStr() の 2 つの関数を使用して実現できます。 。ただし、暗号化に XOR を利用する場合、変換された 16 進数の値が誤った結果を生成するという共通の課題が発生します。
提供された strToHex() および hexToStr を使用する場合() バイナリ文字列 (「これがテストです」) とその 16 進表現の間で変換する関数(12181d15501d15500e15541215712)、結果のデコードされた文字列 ("↕↑↔§P↔§P♫§T↕§q") は元の文字列と異なります。
手間のかからない代替手段として、PHP が提供するものバイナリ文字列と 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 中国語 Web サイトの他の関連記事を参照してください。