PHP 変換の問題: 16 進数のエンコードとデコード
PHP を使用する場合、文字列と 16 進値の間で変換すると、予期しない結果が生じる可能性があります。 strToHex や hexToStr などのカスタム関数は基本的な機能を提供しますが、常に最適なソリューションであるとは限りません。
最初に提示されたコードは、XOR を使用して暗号化されたテキストに適用すると問題に直面します。これは、暗号化プロセスでバイナリ結果が生成されるためです。このバイナリを 16 進数に変換しようとすると、不正なデータが生成されます。
解決策: Bin2hex と Hex2bin
バイナリ文字列のエンコードとデコードのために、PHP はネイティブ関数 bin2hex と hex2bin を提供します。 。これらの関数はバイナリ データを効果的に処理し、正確な変換を保証します。
バイナリ文字列を 16 進数に変換するには、次のように bin2hex を使用します。
bin2hex("that's all you need"); # Output: 74686174277320616c6c20796f75206e656564
16 進文字列をバイナリにデコードするには、次のように使用します。 hex2bin:
hex2bin('74686174277320616c6c20796f75206e656564'); # Output: that's all you need
注: 入力データと出力データが予期された形式であることを常に確認してください。バイナリ データは bin2hex および hex2bin で使用する必要があり、文字列はカスタム関数 strToHex および hexToStr で使用する必要があります。
以上がPHP の「bin2hex」と「hex2bin」がバイナリ データの変換に適したツールであるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。