ホームページ > バックエンド開発 > PHPチュートリアル > XOR 暗号化中に PHP 16 進変換が失敗するのはなぜですか?

XOR 暗号化中に PHP 16 進変換が失敗するのはなぜですか?

Patricia Arquette
リリース: 2024-11-10 19:10:03
オリジナル
542 人が閲覧しました

Why Do My PHP Hex Conversions Fail During XOR Encryption?

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 サイトの他の関連記事を参照してください。

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