Bonjour.
J'ai réalisé un petit acces membre (login / password) avec les session PHP
sur un site internet. Les login et passwords sont stocké dans MySQL que je
gère avec PHP MyAdmin. Seulement mes mots de passes sont actuellement des
VARCHAR de 255 tt simplement.. et ne sont pas crypter dans la bdd.
J'ai vaguement eu entendu parler de md5 ? qqch du genre ? Qui permet de
crypter / decrypter / valider / des mots de passes.
Qui pourrait m'en dire plus ?
Existe-il (en francais si possible) des tutos sur le sujet ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent Seguin
tobee , le 31 oct. 2004 20:50:38, écrivait ceci:
J'ai réalisé un petit acces membre (login / password) avec les session PHP sur un site internet. Les login et passwords sont stocké dans MySQL que je gère avec PHP MyAdmin. Seulement mes mots de passes sont actuellement des VARCHAR de 255 tt simplement.. et ne sont pas crypter dans la bdd.
J'ai vaguement eu entendu parler de md5 ? qqch du genre ? Qui permet de crypter / decrypter / valider / des mots de passes. Qui pourrait m'en dire plus ?
MD5 (Message Digest version 5) est un algorithme de hashage et non pas de cryptage (la diférence est notable). Cet argo retourne toujours une "empreinte", sous la forme d'une chaine de 32 caractère. C'est un algorithme à sens unique car l'empreinte ne permet pas de retrouver le message (du moins personne n'y est encore arrivé à coup sur).
Existe-il (en francais si possible) des tutos sur le sujet ?
Tout dépend de ce que tu recherches. Si tu veux la démonstration mathématique ou autre... Si tu aimes les documents long et chiant et en english in the text tu peux lire la RFC 1321 (http://www.faqs.org/rfcs/rfc1321) :-p
L'interêt de socker un mot de passe utilisateur en MD5 dans une BdD est que personne ne peut voir le mdp en clair dans la base de donnée (on peu même ne faire transiter que le hashage dans les trames http, mais la c'est une autre histoire) et que cela prendra toujours 32 caractères (donc un char 32). La contre-partie c'est que tu ne peux pas renvoyer le mot de passe à l'utilisateur si il l'a oublié, tu seras obligé de lui faire regénérer un nouveau.
Tu peux utiliser le hashage MD5 de la fonction PHP : http://fr.php.net/md5 ou même directement avec celle de MySQL : http://dev.mysql.com/doc/mysql/fr/Encryption_functions.html
PS : pourquoi un fu2 sur alt.fr.comp.lang.php alors qu'il n'est même pas en crosspost ?
tobee <bgi-lmf@myamail.com>, le 31 oct. 2004 20:50:38, écrivait ceci:
J'ai réalisé un petit acces membre (login / password) avec les session
PHP sur un site internet. Les login et passwords sont stocké dans
MySQL que je gère avec PHP MyAdmin. Seulement mes mots de passes sont
actuellement des VARCHAR de 255 tt simplement.. et ne sont pas crypter
dans la bdd.
J'ai vaguement eu entendu parler de md5 ? qqch du genre ? Qui permet
de crypter / decrypter / valider / des mots de passes.
Qui pourrait m'en dire plus ?
MD5 (Message Digest version 5) est un algorithme de hashage et non pas de
cryptage (la diférence est notable). Cet argo retourne toujours une
"empreinte", sous la forme d'une chaine de 32 caractère.
C'est un algorithme à sens unique car l'empreinte ne permet pas de
retrouver le message (du moins personne n'y est encore arrivé à coup sur).
Existe-il (en francais si possible) des tutos sur le sujet ?
Tout dépend de ce que tu recherches. Si tu veux la démonstration
mathématique ou autre... Si tu aimes les documents long et chiant et en
english in the text tu peux lire la RFC 1321
(http://www.faqs.org/rfcs/rfc1321) :-p
L'interêt de socker un mot de passe utilisateur en MD5 dans une BdD est que
personne ne peut voir le mdp en clair dans la base de donnée (on peu même
ne faire transiter que le hashage dans les trames http, mais la c'est une
autre histoire) et que cela prendra toujours 32 caractères (donc un char
32). La contre-partie c'est que tu ne peux pas renvoyer le mot de passe à
l'utilisateur si il l'a oublié, tu seras obligé de lui faire regénérer un
nouveau.
Tu peux utiliser le hashage MD5 de la fonction PHP : http://fr.php.net/md5
ou même directement avec celle de MySQL :
http://dev.mysql.com/doc/mysql/fr/Encryption_functions.html
PS : pourquoi un fu2 sur alt.fr.comp.lang.php alors qu'il n'est même pas en
crosspost ?
J'ai réalisé un petit acces membre (login / password) avec les session PHP sur un site internet. Les login et passwords sont stocké dans MySQL que je gère avec PHP MyAdmin. Seulement mes mots de passes sont actuellement des VARCHAR de 255 tt simplement.. et ne sont pas crypter dans la bdd.
J'ai vaguement eu entendu parler de md5 ? qqch du genre ? Qui permet de crypter / decrypter / valider / des mots de passes. Qui pourrait m'en dire plus ?
MD5 (Message Digest version 5) est un algorithme de hashage et non pas de cryptage (la diférence est notable). Cet argo retourne toujours une "empreinte", sous la forme d'une chaine de 32 caractère. C'est un algorithme à sens unique car l'empreinte ne permet pas de retrouver le message (du moins personne n'y est encore arrivé à coup sur).
Existe-il (en francais si possible) des tutos sur le sujet ?
Tout dépend de ce que tu recherches. Si tu veux la démonstration mathématique ou autre... Si tu aimes les documents long et chiant et en english in the text tu peux lire la RFC 1321 (http://www.faqs.org/rfcs/rfc1321) :-p
L'interêt de socker un mot de passe utilisateur en MD5 dans une BdD est que personne ne peut voir le mdp en clair dans la base de donnée (on peu même ne faire transiter que le hashage dans les trames http, mais la c'est une autre histoire) et que cela prendra toujours 32 caractères (donc un char 32). La contre-partie c'est que tu ne peux pas renvoyer le mot de passe à l'utilisateur si il l'a oublié, tu seras obligé de lui faire regénérer un nouveau.
Tu peux utiliser le hashage MD5 de la fonction PHP : http://fr.php.net/md5 ou même directement avec celle de MySQL : http://dev.mysql.com/doc/mysql/fr/Encryption_functions.html
PS : pourquoi un fu2 sur alt.fr.comp.lang.php alors qu'il n'est même pas en crosspost ?
Damien METZLER
Tu peux utiliser le hashage MD5 de la fonction PHP : http://fr.php.net/md5 ou même directement avec celle de MySQL : http://dev.mysql.com/doc/mysql/fr/Encryption_functions.html
PS : pourquoi un fu2 sur alt.fr.comp.lang.php alors qu'il n'est même pas en crosspost ?
Ce qui est pas mal aussi et qui ne mange pas de pain est de stocker la chaine au format LDAP : {MD5}azefqsgqdsfg= La chaine doit alors être encodé en BASE64 cela se fait facilement avec la commande suivante :
function _encryptPassword($password) { return "{MD5}".base64_encode(pack("H*", md5($password))); }
Cela permet d'une part de connaitre l'encodage utilisé étant donné qu'il est en clair, et d'autre part de pouvoir le réutiliser si un jour tu migre sur LDAP.
En revanche, il ne faut surtout pas utiliser la commande PASSWORD de MySQL qui est réservée pour les mots de passe MySQL. Ca marche, mais si un jour tu dois le réutiliser ou faire communiquer avec un autre soft c'est super casse pied !
Tu peux utiliser le hashage MD5 de la fonction PHP : http://fr.php.net/md5
ou même directement avec celle de MySQL :
http://dev.mysql.com/doc/mysql/fr/Encryption_functions.html
PS : pourquoi un fu2 sur alt.fr.comp.lang.php alors qu'il n'est même pas en
crosspost ?
Ce qui est pas mal aussi et qui ne mange pas de pain est de stocker la
chaine au format LDAP : {MD5}azefqsgqdsfg= La chaine doit alors être encodé en BASE64 cela se fait facilement avec
la commande suivante :
function _encryptPassword($password) {
return "{MD5}".base64_encode(pack("H*", md5($password)));
}
Cela permet d'une part de connaitre l'encodage utilisé étant donné qu'il
est en clair, et d'autre part de pouvoir le réutiliser si un jour tu
migre sur LDAP.
En revanche, il ne faut surtout pas utiliser la commande PASSWORD de
MySQL qui est réservée pour les mots de passe MySQL. Ca marche, mais si
un jour tu dois le réutiliser ou faire communiquer avec un autre soft
c'est super casse pied !
Tu peux utiliser le hashage MD5 de la fonction PHP : http://fr.php.net/md5 ou même directement avec celle de MySQL : http://dev.mysql.com/doc/mysql/fr/Encryption_functions.html
PS : pourquoi un fu2 sur alt.fr.comp.lang.php alors qu'il n'est même pas en crosspost ?
Ce qui est pas mal aussi et qui ne mange pas de pain est de stocker la chaine au format LDAP : {MD5}azefqsgqdsfg= La chaine doit alors être encodé en BASE64 cela se fait facilement avec la commande suivante :
function _encryptPassword($password) { return "{MD5}".base64_encode(pack("H*", md5($password))); }
Cela permet d'une part de connaitre l'encodage utilisé étant donné qu'il est en clair, et d'autre part de pouvoir le réutiliser si un jour tu migre sur LDAP.
En revanche, il ne faut surtout pas utiliser la commande PASSWORD de MySQL qui est réservée pour les mots de passe MySQL. Ca marche, mais si un jour tu dois le réutiliser ou faire communiquer avec un autre soft c'est super casse pied !