PHP での 16 進数と文字列間の変換
問題:
文字列と文字列の間で変換する場合PHP の 16 進表現では、XOR 暗号化を使用するときに問題が発生します。特に、文字列から 16 進数への変換では、誤った結果が生成される可能性があります。
コード サンプル:
function strToHex($string){ $hex=''; for ($i=0; $i < strlen($string); $i++){ $hex .= dechex(ord($string[$i])); } return $hex; } function hexToStr($hex){ $string=''; for ($i=0; $i < strlen($hex)-1; $i+=2){ $string .= chr(hexdec($hex[$i].$hex[$i+1])); } return $string; }
解決策:
提供された変換関数を使用する代わりに、組み込み関数 bin2hex と bin2hex を利用します。 hex2bin.
bin2hex("that's all you need"); # 74686174277320616c6c20796f75206e656564 hex2bin('74686174277320616c6c20796f75206e656564'); # that's all you need
これらの関数はバイナリ データを適切に処理し、正確な 16 進表現と文字列変換を生成します。
以上がXOR 暗号化中に PHP 16 進変換が失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。