Hash md5 sur champs mot de passe

mikl86 -  
blux Messages postés 27121 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,


Ma base de données enregistre les mots de passe utilisateur en visible pour le moment.
J''aimerai qu'il soit hashé automatiquement lors de l'insertion.
J'imagine pour cela qu'il faut modifier la structure de ma ligne "pass" ?

J'ai essayé ca :
UPDATE client SET pass=MD5(client)

Qui fonctionne pour les donnée déjà entrées dans la base.
Mais si j'ajoute une insertion, le mot de passe n'est pas hashé automatique.

Comment procéder svp ?

A voir également:

3 réponses

blux Messages postés 27121 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Salut,

c'est à toi de le prévoir, en fonction de ta manière d'insérer les nouvelles lignes.

Ou utiliser un trigger...
1
Utilisateur anonyme
 
Bonjour

UPDATE client SET pass=MD5(client) ? 
Pour les clients déjà enregistrés, ça aurait plutôt dû être :
UPDATE client SET pass=MD5(pass) 

Car avec ce que tu as mis, tu as remplacé leurs mots de passe par leur nom - ou en tout cas ce qu'il y avait dans le champ client.

Pour que ce soit appliqué automatiquement à la création de nouveaux clients, il suffit d'appliquer la fonction md5 à la valeur affectée au champ mot de passe dans la requête d'insertion. C'est normalement très facile, si tu sais où se trouve cette requête dans le code.
0
mikl86
 
Merci pour vos réponses.
ahhh effectivement, le père, j'ai fais une boulette !
Par contre ce que je ne comprends pas , c est que dans un tuto j'ai vu ca
   1. CREATE TABLE membre (
   2.    id int(11) NOT NULL auto_increment,
   3.    login text NOT NULL,
   4.    pass_md5 text NOT NULL,
   5.    PRIMARY KEY (id)
   6. ) TYPE=MyISAM; 


La ligne 4 configure la ligne "passe" en MD5.
Je me dis que si il est possible de l'indiquer lors de la création de la table, il est possible de modifier directement la structure non ?
0
blux Messages postés 27121 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
La ligne 4 définit une colonne nommée pass_md5 de type texte, c'est tout...
0
mikl86
 
c'est justement ce que je souhaite faire, mais à partir d'une colonne déja existance contrairement à mon exemple ou il s'agit d'une création de table.
Mais je ne sais pas formuler l'instruction correctement
0
blux Messages postés 27121 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
mais à partir d'une colonne déja existance contrairement à mon exemple ou il s'agit d'une création de table.
Non, ce que tu as donné n'a rien à voir avec MD5, c'est juste que l'on a appelé une colonne pass_md5.

En SQL on pourrait faire un truc comme ça :

INSERT INTO Table(login,pass_md5 VALUES($login,md5($password))...
où $login et $password sont deux variables récupérées de la saisie utilisateur.
0