IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

AES_ENCRYPT / DECRYPT [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut AES_ENCRYPT / DECRYPT
    Bonjour,

    Je viens de me renseigner sur cette fonction pour pouvoir crypter certains champs de ma base de données qui est insérée à un site web.
    J'ai quand même quelques petites questions dessus :

    Tout d'abord, j'aimerai savoir comment créer ma clé (j'ai trouvé le site http://webnet77.com/cgi-bin/helpers/passwords.pl mais dois-je lui faire confiance ?)
    j'ai aussi vu sur le site de documentation mysql qu'il était possible de stocker la clé dans une variable sur le serveur au moment de la connexion avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT @password:="my password";
    INSERT INTO t VALUES (1,AES_ENCRYPT("text",@password));
    Mais je n'arrive pas a comprendre ce que cela signifie; notamment l'utilisation de l'arobase pour déclarer la variable...

    Merci de m'avoir lu et pour vos éventuelles réponses !

  2. #2
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tribalnanasss Voir le message
    Je viens d'apprendre que cela permettait de déclarer une variable d'environnement, seulement, je n'arrive pas à la déclarer en php...

    J'y suis néanmoins arrivé à la déclarer en variable de session et j'aimerai donc savoir si la sécurité était suffisante (le fait de garder la clé en variable de session).

    ps : serait-il possible de faire migrer ce sujet dans la partie PHP ?
    merci
    Salut... déjà une première chose, l'ordre des variables dans AES_ENCRYPT est l'inverse pour que ça marche:
    • la chaîne à crypter
    • la clé de cryptage

    En fait, @password est juste une variable globale et non une variable d'environnement de ta session utilisateur mysql, utilisée pour passer la valeur du mot de passe. Les variables d'environnement, qui configurent le comportement de ta session, sont avec un double arobase.
    on peut la fixer avec le code suivant (à mettre avant ton code (ou à envoyer à mysql avant d'exécuter ton bout de code) :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    set @password="truc";

    Les variables globales n'ont pas à être déclarées avec un typage, elles permettent de stocker une valeur pour une utilisation entre plusieurs requêtes ou plus souvent, dans les requêtes préparées, pour le passage de paramètres. Tu les vois plus souvent dans une utilisation de mysql avec le client en ligne de commande.

    tu peux donc utiliser directement ta variable PHP à encoder à la place.

    "text" représente ici la chaîne de caractères qui sert de clé d'encryptage et que tu devras utiliser à l'identique donc dans AES_DECRYPT pour récupérer le contenu crypté précédemment. Par exemple:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
     select aes_decrypt(aes_encrypt("coucou","clé"),"clé");

    ...renverra la chaîne "coucou".

    Important à savoir:
    • Il existe différents algorithmes pour l'AES qui sont plus ou moins complexes et donc paramétrables.
    • Comme les fonctions de cryptage/décryptage sont pas ou peu décrites pour php et mysql quand aux algorithmes et paramétrages choisis, tu dois donc soit utiliser uniquement celles de php ou celles de mysql car elles sont incompatibles entre elles.
    • Pour info, il existe une librairie en JS de cryptographie, gratuite et entièrement paramétrable qu'on peut avoir ici.


    En espérant que ça répondra aux question que beaucoup posent sur ce sujet et qui ont peu de réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher un blob / aes_encrypt
    Par Homegrown dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 18/02/2009, 16h45
  2. débutant : Logiciel d'encryption/decryption
    Par ggcourtois dans le forum Débuter
    Réponses: 6
    Dernier message: 29/07/2006, 00h58
  3. Crypter et decrypter des chaines
    Par toure32 dans le forum Sécurité
    Réponses: 6
    Dernier message: 03/07/2006, 11h40
  4. [Cryptage]Crypter/Décrypter
    Par jc44 dans le forum Sécurité
    Réponses: 6
    Dernier message: 18/12/2005, 14h03
  5. Decrypter un message d'erreur
    Par devdev2003 dans le forum Linux
    Réponses: 3
    Dernier message: 13/07/2005, 12h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo