Je choisirais un hash salé unidirectionnel.
En utilisant par exemple un hash SHA1, vous auriez un moyen de stocker le mot de passe sous forme de hash qui ne peut pas être inversé pour retrouver le mot de passe original. Ensuite, lorsque l'utilisateur entre son mot de passe, vous effectuez le même hash SHA1 sur le mot de passe et comparez ce hash avec ce que vous avez stocké dans la base de données, s'ils correspondent alors le mot de passe est correct.
Pour renforcer davantage le hachage, vous pouvez ajouter un sel, il s'agit essentiellement d'une valeur générée aléatoirement que vous générez pour chaque utilisateur lorsque vous créez le compte, et stockez la valeur du sel dans l'enregistrement de l'utilisateur. Lorsque vous créez le hash du mot de passe, vous combinez d'abord le mot de passe avec le sel et hachez cette valeur combinée. Pour authentifier l'utilisateur, vous combinez le mot de passe saisi avec le sel stocké pour l'utilisateur, effectuez le hachage sur la valeur combinée et comparez.
En ajoutant le sel au mélange, vous vous assurez que le hachage pour les mots de passe qui se trouvent être les mêmes ont un hachage différent car la portion salée diffère. Ainsi, si deux utilisateurs ont le même mot de passe "MotDePasse1234", le hachage stocké des deux ne sera pas le même, il ne sera donc pas possible de déterminer que deux utilisateurs ont le même mot de passe.
0 votes
Avez-vous besoin de mots de passe "chiffrés" ou "hachés"? Ce n'est pas la même chose. Le hachage est plus sécurisé, mais si vous avez besoin de pouvoir les lire un jour, le chiffrement est la meilleure option. La plupart des réponses ci-dessous supposent que vous voulez des hachages. Pouvez-vous préciser :) ?
0 votes
Je veux des hachages. Plus sécurisé :)