Conversion entre hexadécimal et chaînes en PHP
Problème :
Lors de la conversion entre chaînes et Représentations hexadécimales en PHP, des problèmes surviennent lors de l'utilisation du cryptage XOR. Plus précisément, la conversion de chaîne en hexadécimal peut produire des résultats incorrects.
Exemples de code :
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; }
Solution :
Au lieu d'utiliser les fonctions de conversion fournies, utilisez les fonctions intégrées bin2hex et hex2bin.
bin2hex("that's all you need"); # 74686174277320616c6c20796f75206e656564 hex2bin('74686174277320616c6c20796f75206e656564'); # that's all you need
Ces fonctions gèrent correctement les données binaires et produisent des représentations hexadécimales et des conversions de chaînes précises.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!