Bonjour à toutes et tous,

je voulais vous demander si vous pensez qu'utiliser l'id d'un utilisateur (dans la base de données) comme grain de sel d'un cryptage de password avec crypt() est une solution envisageable ou c'est un truc connu qui sert a rien ?

PaPy

6 réponses


La méthode commune avec le salage, c'est d'utiliser une variable commune à tout le monde, connu uniquement côté serveur.

merci pour la réponse, j'ajoute une question ^^
la variable on peut la mettre en dur dans le code PHP ou elle peut-être enregistré dans la base de données ?

Le mieux, selon moi, serait en dur dans un fichier php.
C'est beaucoup plus difficile à retrouver que d'aller taper dans une base de donnée.

Après il y a des avis différents, je viens de lire un truc comme quoi c'était mieux de le stocker en base et de faire cette démarche :

Quand l'utilisateur va créer son compte
-demander son mot de passe à l’utilisateur
-générer un sel
-le stocker
-l’ajouter au mot de passe
-hasher le sel+mot de passe
-stocker le résultat

et pour vérifier le mot de passe
-demander son mot de passe à l’utilisateur
-lire le sel enregistré
-l’ajouter au mot de passe
-hasher le sel+mot de passe
-comparer le résultat obtenu avec le hashage stocké

A y réfléchir, c'est un peu plus sécurisé parce que le sel est différent pour chaque utilisateur mais après, c'est stocké en base.

merci pour la réponse ^^

et concernant l'utilisation de l'id de l'utilisateur, c'est une bétise ... ce dernier se promene en clair dans les variables de session ... Même si on ne sait pas qu'il fait parti du grain de sel, c'est pas top quand même.

Exactement papy brossard ! Euh..... papywandar ! :D

toujours crypté au minimum avec ou sans le petit grain de sable, perso j'utilise cette méthode :

key1 : "dfè7Yç"!hç8ç!"ç"!é";
key2 : "838HDL0à_éDSDSdjJ11";
$pw = sha1(KEY1.'mon super mot de passe'.KEY2);