Stockage de mot de passe sécurisé algorithme non réversible
Par PlaceOweb le mardi, octobre 28 2008, 00:35 - SQL - Lien permanent
Comment bien stocker et vérifier un mot de passe ?
Si vous voulez stocker le résultat d'un chiffrement qui peut contenir des valeur arbitraires, vous devez utiliser une colonne BLOB plutôt que CHAR ou VARCHAR.
PASSWORD(str)
Calcule un mot de passe chiffré à partir de la chaîne str. C'est cette fonction qui est utilisé pour chiffrer les mots de passes MySQL pour être stockés dans une colonne de type Password de la table user :
mysql> SELECT PASSWORD('monMotDePasse'); -> '66046eed2c713c4b'
Le chiffrage par PASSWORD() n'est pas réversible.
PASSWORD() n'est pas un chiffrage comparable à la fonction de chiffrage Unix. Voir ENCRYPT().
Note : La fonction PASSWORD() est utilisée durant l'identification au serveur MYSQL. Il est recommandé de ne pas l'utiliser pour vos applications. Utilisez plutôt MD5() ou SHA1(). Voyez aussi RFC-2195 pour plus d'informations sur comment gérer les mots de passe et l'identification de votre système.
SHA1(str), SHA(str)
Calcule la somme de vérification SHA1 160 bits de la chaîne string, comme décrit dans la RFC 3174 (Secure Hash Algorithm). La valeur retournée est un entier hexadécimal de 40 caractères, ou bien NULL dans le cas où l'argument vaut NULL. Une des possibilités d'utilisation de cette fonction est le hachage de clé. Vous pouvez aussi l'utiliser comme fonction de cryptographie sûre pour stocker les mots de passe.
mysql> SELECT SHA1('monMotDePasse'); -> '797350adcb79e42b6795c62fc5fefaba80e7d418'
La fonction SHA1() a été ajoutée dans la version 4.0.2 de MySQL et peut être considérée comme une méthode de cryptographie plus sûre que la fonction MD5(). La fonction SHA() est un alias de la fonction SHA1().