Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/07/2011, 18h32   #1
Nouveau Membre du Club
 
Max Dante
Inscription : septembre 2010
Messages : 48
Détails du profil
Informations personnelles :
Nom : Max Dante

Informations forums :
Inscription : septembre 2010
Messages : 48
Points : 25
Points : 25
Par défaut Crypter mots de passe avec AES Encrypt

Bien le bonjour,

Je souhaite crypter les mots de passe de mes utilisateurs avec la fonction AES_ENCRYPT/DECRYPT dans MySQL.

Petit problème, j'ai toujours des messages d'erreurs sur la fonction AES_ENCRYPT même après lecture de la doc (http://dev.mysql.com/doc/refman/5.5/...functions.html).

J'ai donc essayé via l'interface PHPMYADMIN - rubrique "Insérer" une fois dans la table en question, puis sélectionner "Fonction". A ma grande surprise il y a DES_ENCRYPT, SHA1, MD5 mais la fonction AES_ENCRYPT est inexistante (test sous v5.5.8 et v5.5.13) !

Doit-on activer la fonction quelque part ?

Merci d'avance !

M@x
maxlpn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 14h40   #2
Nouveau Membre du Club
 
Max Dante
Inscription : septembre 2010
Messages : 48
Détails du profil
Informations personnelles :
Nom : Max Dante

Informations forums :
Inscription : septembre 2010
Messages : 48
Points : 25
Points : 25
J'ai réussi à contourner l'erreur avec la commande ci-dessous :

Code :
1
2
INSERT INTO matable(pseudo, motdepasse) 
VALUES ('monpseudo', AES_ENCRYPT('sonmdp','key'));
Cependant, il semblerait que le cryptage ne fonctionne pas puisque le champ du mot de passe est soit vide, soit contient une à deux lettres..

Evidemment lorsque j'essaye de la décrypter avec la commande ci-dessous :

Code :
1
2
SELECT pseudo, AES_DECRYPT(motdepasse,'key') AS motdepasse 
FROM matable;
Résultat : NULL !

Ce serait gentil de me donner une indication ou un élément de réponse.. Merci !
maxlpn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 21h51   #3
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 279
Points : 18 279
Envoyer un message via MSN à CinePhil
Quel est le type de la colonne motdepasse ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 09h44   #4
Nouveau Membre du Club
 
Max Dante
Inscription : septembre 2010
Messages : 48
Détails du profil
Informations personnelles :
Nom : Max Dante

Informations forums :
Inscription : septembre 2010
Messages : 48
Points : 25
Points : 25
Bonjour CinePhil,

Le type de la colonne motdepasse est "VARCHAR", taille 255, interclassement "utf8_unicode_ci".

Merci d'avance
maxlpn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 10h10   #5
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
avez vous essayé avec une colonne de type BLOB ?

Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/07/2011, 10h23   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 279
Points : 18 279
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par maxlpn Voir le message
Bonjour CinePhil,

Le type de la colonne motdepasse est "VARCHAR", taille 255, interclassement "utf8_unicode_ci".

Merci d'avance
Effectivement, il faut du BLOB.
Citation:
Envoyé par Doc MySQL
Many encryption and compression functions return strings for which the result might contain arbitrary byte values. If you want to store these results, use a column with a VARBINARY or BLOB binary string data type. This will avoid potential problems with trailing space removal or character set conversion that would change data values, such as may occur if you use a nonbinary string data type (CHAR, VARCHAR, TEXT).


AES_ENCRYPT() and AES_DECRYPT() enable encryption and decryption of data using the official AES (Advanced Encryption Standard) algorithm, previously known as “Rijndael.” Encoding with a 128-bit key length is used, but you can extend it up to 256 bits by modifying the source. We chose 128 bits because it is much faster and it is secure enough for most purposes.
AES_ENCRYPT() encrypts a string and returns a binary string. AES_DECRYPT() decrypts the encrypted string and returns the original string. The input arguments may be any length. If either argument is NULL, the result of this function is also NULL.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/07/2011, 11h30   #7
Nouveau Membre du Club
 
Max Dante
Inscription : septembre 2010
Messages : 48
Détails du profil
Informations personnelles :
Nom : Max Dante

Informations forums :
Inscription : septembre 2010
Messages : 48
Points : 25
Points : 25
Ca marche !!

CinePhil, Yanika_bzh, un grand merci pour votre aide !


M@x
maxlpn est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h28.


 
 
 
 
Partenaires

Hébergement Web