Problèmes de conversion PHP : encodage et décodage hexadécimal
La conversion entre des chaînes et des valeurs hexadécimales peut conduire à des résultats inattendus lorsque vous travaillez avec PHP. Bien que les fonctions personnalisées telles que strToHex et hexToStr fournissent des fonctionnalités de base, elles ne constituent pas toujours la solution la plus appropriée.
Le code initial présenté rencontre des problèmes lorsqu'il est appliqué au texte chiffré à l'aide de XOR. En effet, le processus de cryptage produit un résultat binaire. Tenter de convertir ce binaire en hexadécimal entraîne des données incorrectes.
La solution : Bin2hex et Hex2bin
Pour encoder et décoder des chaînes binaires, PHP propose les fonctions natives bin2hex et hex2bin . Ces fonctions gèrent efficacement les données binaires, garantissant des conversions précises.
Pour convertir une chaîne binaire en hexadécimal, utilisez bin2hex comme suit :
bin2hex("that's all you need"); # Output: 74686174277320616c6c20796f75206e656564
Pour décoder une chaîne hexadécimale en binaire, utilisez hex2bin :
hex2bin('74686174277320616c6c20796f75206e656564'); # Output: that's all you need
Remarque : Assurez-vous toujours que les données d'entrée et de sortie sont dans le format attendu. Les données binaires doivent être utilisées avec bin2hex et hex2bin, tandis que les chaînes doivent être utilisées avec vos fonctions personnalisées strToHex et hexToStr.
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!