PHP 文字列から 16 進数への変換、および 16 進数から文字列への変換で誤った結果が生成されるのはなぜですか?

Linda Hamilton
リリース: 2024-11-09 10:52:02
オリジナル
380 人が閲覧しました

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

PHP 文字列から 16 進数へ、および 16 進数から文字列への変換

PHP では、文字列と 16 進表現の間の変換は、strToHex() と hexToStr() の 2 つの関数を使用して実現できます。 。ただし、暗号化に XOR を利用する場合、変換された 16 進数の値が誤った結果を生成するという共通の課題が発生します。

問題: 16 進数と文字列の変換における不一致

提供された strToHex() および hexToStr を使用する場合() バイナリ文字列 (「これがテストです」) とその 16 進表現の間で変換する関数(12181d15501d15500e15541215712)、結果のデコードされた文字列 ("↕↑↔§P↔§P♫§T↕§q") は元の文字列と異なります。

解決策: 組み込みの PHP 関数を使用する

手間のかからない代替手段として、PHP が提供するものバイナリ文字列と 16 進数表現の間で変換するための組み込み関数:

  • bin2hex() は、バイナリ文字列を 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート