2010-10-27 4 views
0

Je suis simplement curieux de savoir si quelqu'un peut me diriger dans la bonne direction avec la recherche MySQL avec le cryptage AES.Recherche MySQL avec cryptage AES

Il y a plusieurs choses à prendre en compte. Si je prends le mot clé et le crypte avant de chercher, je compare le cryptage au cryptage et même si une lettre est en majuscule et qu'une autre lettre n'est pas capée dans MySQL, elle ne la trouvera pas en utilisant le LIKE% $ mot-clé%

L'autre facteur est mon processus de cryptage. $ variable -> nettoyage espacement supplémentaire -> strip_slashes (etc) -> Convertir en AES -> Convertir en Base_64 avant d'importer en DB.

La raison de l'encodage supplémentaire était des problèmes avec les caractères abstraits entrant dans MySQL et c'était une importation sans faille utilisant ceci. Donc, en utilisant MySQL AES intégré, n'était pas la meilleure option pour moi.

Donc, je suppose que la meilleure façon de le faire est quelque chose le long de ces lignes.

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

Peut-être que quelqu'un peut faire la lumière sur cela pour moi, je serais sûrement reconnaissant.

À la votre! et merci d'avance!

+0

Serait-il préférable pour moi de laisser toutes mes données décryptées dans la base de données sauf pour des informations très importantes? Actuellement, il détient des informations IE: NAS, DOB, ADRESSE, TOUT CONTACT, etc ... c'est une grande quantité de données en un seul endroit, mais je ne suis pas sûr que ce serait juste intelligent pour crypter le NAS et laisser le reste du texte. .. etc. – Justin

Répondre

0

Si vous avez crypté les données avant de les insérer, vous ne pouvez pas rechercher les valeurs partielles dans tous les champs, sauf pour parcourir chaque ligne, la déchiffrer et rechercher le résultat.

+0

Que pensez-vous du commentaire que j'ai ajouté ci-dessus à ma question? – Justin

3

La réponse est un peu lente, mais vous pourriez obtenir des résultats de recherche beaucoup plus rapides en faisant quelque chose comme ça.

Disons que nous voulons chiffrer ces phrases:

  1. Ma belle voiture
  2. J'adore mysql
  3. Minority

Vous pouvez les stocker chiffrés, supposons * ** ou, vous pouvez stocker la valeur chiffré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 cherchez et effectuer un décryptage complet sur le reste des données.

Bien sûr, cela ne fonctionne que pour les recherches qui "commencent avec" une certaine chaîne. Les 3 caractères sont juste un nombre aléatoire et devraient être déterminés en fonction de la sensibilité, des besoins de performance et de la taille de l'ensemble de données.

+0

Ouais c'est une pensée intéressante en fait, je vais devoir considérer cela aussi pour une utilisation future! Merci pour la contribution! – Justin

1

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

$ sql_query = "SELECT *, la fonction AES_DECRYPT (text_in_blob, '$ sel') AS decrypted_text DE my_table OU CONVERT (fonction AES_DECRYPT (text_in_blob, '$ sel') en utilisant latin1) LIKE '% de mots clés%'";

Questions connexes