Cryptage et décryptage AES à l'aide des fonctions MySQL
Lorsque vous travaillez avec des données sensibles, le cryptage devient crucial pour protéger les informations contre tout accès non autorisé. MySQL fournit diverses fonctions de cryptage, notamment AES_ENCRYPT et AES_DECRYPT, pour protéger les données. Cependant, certains utilisateurs rencontrent des difficultés lorsqu'ils tentent de déchiffrer après chiffrement à l'aide de ces fonctions.
Problème :
Lors de l'interrogation d'une ligne d'une table à l'aide de AES_DECRYPT après l'avoir chiffrée avec AES_ENCRYPT, le résultat peut apparaître sous la forme d'une chaîne binaire plutôt que comme prévu texte en clair.
Solution :
Selon la documentation MySQL, AES_DECRYPT devrait renvoyer la chaîne d'origine après le décryptage. Cependant, il peut y avoir des situations dans lesquelles il renvoie quand même une chaîne binaire.
Le code suivant illustre une solution de contournement à ce problème :
SELECT *, CAST(AES_DECRYPT(first_name, 'usa2010') AS CHAR(50)) first_name_decrypt FROM user
En convertissant explicitement la valeur déchiffrée en un type de caractère à l'aide de CAST(), vous pouvez vous assurer qu'il est affiché sous forme de chaîne lisible. Utilisez la colonne first_name_decrypt dans vos requêtes pour récupérer le texte brut déchiffré au lieu de la colonne first_name d'origine.
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!