[RESOLU] MYSQL mot de passe crypté

Eléphanteau du PHP | 20 Messages

11 déc. 2007, 16:34

Bonjour toutes et tous

Je n'arrive pas a retrouver la syntaxe pour cripter un mot de pase

Ce que je sais faire c'est une lecture de tout mon fichier, et pour chaque data,
au milieu de mon while je voudrais
1) crypter la variable contenant le mot de passe
2) reecrire le data
3) laisser se poursuivre mon while !!

Ne hurlez pas , je sais que ça doit' étre enfantin pour vous :roll:

Mille merci d'avance de me donner les 2 / 3 lignes de code type pour cela !
et joyeux Noël d'avanec :D
Modifié en dernier par FoxLeRenard le 11 déc. 2007, 18:29, modifié 1 fois.

Eléphant du PHP | 377 Messages

11 déc. 2007, 17:20

Euh, dis moi si j'ai tout bien compris :
tu as une table avec des enregistrements (utilisateurs je suppose), et l'un des champs est un mot de passe, pour l'instant en clair, que tu souhaites crypter?

si c'est ça, une seule requête et le tour est joué :
mysql_query("UPDATE utilisateurs SET password=MD5(password)") or exit(mysql_error());
Petit scarabée deviendra grand

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 déc. 2007, 17:27

Pourquoi parles-tu de fichier et de MySQL dans le même post ?

Si tu cherches un moyen de crypter le mot de passe en base de données, il existe la fonction PASSWORD()
exemple d'utilisation

Code : Tout sélectionner

INSERT INTO membre( login, pass) VALUES( 'Zeus', PASSWORD('monpassquejedonnepas') )
Et si tu cherches une fonction PHP, il existe md5(), sha1(), crypt()

PS : si ton but est de crypter les données qui sont contenu dans ta base de données, sache 2 choses :
1/ Préfère utiliser la fonction MySQL que les fonctions PHP, cela te permettra de tester directement dans la requête que le pass est bon

Code : Tout sélectionner

SELECT id_utilisateur FROM membre WHERE pass = PASSWORD('valeurSaisieSansLeForm')
2/ Si tu comptes crypter des données qui sont actuellement non cryptées dans ta base, sache que tu peux le faire en une seule requête :

Code : Tout sélectionner

UPDATE pass = PASSWORD(pass) FROM membre
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 377 Messages

11 déc. 2007, 17:36

Attention !
Une mise à jour en version MySQL 4.1 peut se révéler un problème de compatibilité pour les applications qui utilisent PASSWORD() pour générer leurs propres mots de passe. Les applications ne devraient pas faire cela, car PASSWORD() doit être réservé pour gérer les mots de passe de MySQL. Mais certaines applications utilisent PASSWORD() pour leurs propres objectifs.

Si vous passez en version 4.1 et lancez le serveur dans certaines conditions, où il va générer des hashs de mots de passe longs, l'application qui utilise PASSWORD() va sûrement planter. Notre recommandation est d'utiliser les fonctions de chiffrement SHA1() ou MD5() pour produire des signatures.
Petit scarabée deviendra grand

Eléphanteau du PHP | 20 Messages

11 déc. 2007, 18:20

Euh, dis moi si j'ai tout bien compris :
tu as une table avec des enregistrements (utilisateurs je suppose), et l'un des champs est un mot de passe, pour l'instant en clair, que tu souhaites crypter?

si c'est ça, une seule requête et le tour est joué :
mysql_query("UPDATE utilisateurs SET password=MD5(password)") or exit(mysql_error());
Trop beau Trop simple trop Génial ... mille merci pour ce cadeau de Noël
qui me fait gagner beaucoup de temps :lol: