fonction sha1

Eléphanteau du PHP | 20 Messages

25 nov. 2008, 17:54

Bonjour,

Dans la base de donnée de mes utilisateurs, leur mots de passe sont stochées 'hashés'.
J'ai pour cela utilisé la fonction sha1()

Mais lorsque l'utilisateur se connecte je tente la comparaison suivante :
mot de passe stocké = sha1(mot de passe saisi)

J'ai constaté que la traduction de sha1(mot de passe saisi) est différente de mot de passe stocké.

Je ne sais pourquoi car il s'agit strictement du même mot de passe.

Avez vous une explication ?

Merci pour vos lumières.

:wink: :wink:

Eléphant du PHP | 291 Messages

25 nov. 2008, 18:46

Il n'y a pas de raison...
sha1("foo") === sha1("foo")
doit retourner vrai... tu n'utilises aucun sel ? :) (Genre sha1("salt", "password"))

Eléphanteau du PHP | 20 Messages

25 nov. 2008, 19:28

Merci.
En fait après des heures de pointage, saisi d'un doute j'ai été voir comment je stockais le mot de passe à l'origine. Ce n'était pas celui qui était saisi.
Après vérification, tout est rentré dans l'ordre.

Pour ce qui concerne SALT je ne suis pas encore convaincu de son caractère indispensable en sécurité. C'est vrai que je n'ai pas encore approfondi le sujet.

Merci :wink: :wink:

ViPHP
AB
ViPHP | 5818 Messages

26 nov. 2008, 00:05

Pour ce qui concerne SALT je ne suis pas encore convaincu de son caractère indispensable en sécurité. C'est vrai que je n'ai pas encore approfondi le sujet.

Merci :wink: :wink:
Ben c'est tout simple, même avec un mdp haché, quelqu'un qui est à l'écoute des transactions sur le web (pirate) peut le récupérer et se connecter - mais bon ça demande un certain savoir faire -. Si tu ajoute un grain de sel différent à chaque fois et concaténé à ton mpd, le tout haché, le pirate ne pourra rien faire de ce qu'il récupère.
Mais effectivement ce n'est pas indispensable mais dépend du niveau de sécurité que tu veux mettre.