Heim > Artikel > Backend-Entwicklung > Warum schlagen meine PHP-Hex-Konvertierungen während der XOR-Verschlüsselung fehl?
Konvertierung zwischen Hex und Strings in PHP
Problem:
Bei der Konvertierung zwischen Strings und Bei hexadezimalen Darstellungen in PHP treten bei der Verwendung der XOR-Verschlüsselung Probleme auf. Insbesondere die Konvertierung von String in Hex kann zu falschen Ergebnissen führen.
Codebeispiele:
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; }
Lösung:
Anstatt die bereitgestellten Konvertierungsfunktionen zu verwenden, nutzen Sie die integrierten Funktionen bin2hex und hex2bin.
bin2hex("that's all you need"); # 74686174277320616c6c20796f75206e656564 hex2bin('74686174277320616c6c20796f75206e656564'); # that's all you need
Diese Funktionen verarbeiten Binärdaten ordnungsgemäß und erzeugen genaue Hexadezimaldarstellungen und String-Konvertierungen.
Das obige ist der detaillierte Inhalt vonWarum schlagen meine PHP-Hex-Konvertierungen während der XOR-Verschlüsselung fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!