/ / Recherche dans MySQL avec chiffrement AES - php, mysql, search, aes

Recherche de MySQL avec le chiffrement AES - php, mysql, search, aes

Je suis simplement curieux de savoir si quelqu'un peut me faire pointer dans la bonne direction en effectuant une recherche dans MySQL avec le cryptage AES.

Il y a un certain nombre de choses qui doivent êtrepris en considération. Si je prends le mot clé et le chiffre avant la recherche, je compare le chiffrement au chiffrement et même si une lettre est en majuscule et une autre lettre dans MySQL, il ne le trouvera pas avec le mot-clé LIKE% $.

L'autre facteur est mon processus de cryptage. $ variable -> nettoyer l'espacement supplémentaire -> strip_slashes (etc) -> Convertir en AES -> Convertir en Base_64 avant l'importation dans la base de données.

La raison de cet encodage supplémentaire était due à des problèmes avec des caractères abstraits entrant dans MySQL, ce qui a permis une importation sans faille. Donc, utiliser MySQL AES intégré, n’était pas la meilleure option pour moi.

Je suppose donc que le meilleur moyen de procéder est de procéder de la sorte.

$ variable -> [mot clé] Est-ce qu'un résultat SQL décrypte et recherche la chaîne? mais cela semble un peu exagéré ...

Peut-être que quelqu'un peut m'éclairer à ce sujet, je vous en serais reconnaissant.

À votre santé! et merci d'avance!

Réponses:

0 pour la réponse № 1

Si vous avez chiffré les données avant de les insérer, il n'y a aucun moyen de rechercher des valeurs partielles du tout sauf pour itérer chaque ligne, la déchiffrer et rechercher le résultat.


3 pour la réponse № 2

La réponse est un peu lente, mais vous pouvez obtenir des résultats de recherche beaucoup plus rapides en procédant de la sorte.

Disons que nous voulons chiffrer ces phrases:

  1. Ma belle voiture
  2. J'aime mysql
  3. Minorité

Vous pouvez les stocker cryptés, supposons *** ou, vous pouvez stocker la valeur cryptée et inclure les 3 premiers caractères de l'original: mon ***, Je l ***, Min ***

Dans ce cas, vous pouvez utiliser mysql pour rechercher les 3 premiers caractères de ce que vous recherchez et effectuer un déchiffrement complet sur le reste des données.

Bien sûr, cela ne fonctionne que pour les recherches qui"commence par" une certaine chaîne. Les 3 caractères sont juste un nombre aléatoire et doivent être déterminés en fonction de la sensibilité, des besoins en performances et de la taille du jeu de données.


1 pour la réponse № 3

Voici un exemple similaire à ce que Andrew a suggéré si cela peut aider.

$ sql_query = "SELECT *, AES_DECRYPT (text_in_blob," $ salt ") AS decrypted_text FROM ma_table WHERE CONVERT (AES_DECRYPT (text_in_blob, "$ salt") USING latin1) LIKE "% keyword%" ";