PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Quelle est la méthode recommandée pour chiffrer les mots de passe des utilisateurs dans une base de données ?

N'utilisez pas SHA1 ou SHA256 , comme la plupart des autres personnes le suggèrent. N'utilisez certainement pas MD5 .

SHA1/256 et MD5 sont tous deux conçus pour créer des sommes de contrôle de fichiers et de chaînes (et d'autres types de données, si nécessaire). Pour cette raison, ils sont conçus pour être aussi rapides que possible, afin que la somme de contrôle soit générée rapidement.

Cette vitesse rapide facilite grandement le bruteforce des mots de passe, car un programme bien écrit peut facilement générer des milliers de hachages chaque seconde.

Utilisez plutôt un algorithme lent spécialement conçu pour les mots de passe. Ils sont conçus pour prendre un peu plus de temps à générer, l'avantage étant que les attaques par force brute deviennent beaucoup plus difficiles. De ce fait, les mots de passe seront beaucoup plus sécurisés.

Vous ne rencontrerez aucun désavantage significatif en matière de performances si vous ne cherchez qu'à chiffrer les mots de passe individuels un par un, ce qui est l'implémentation normale du stockage et de la vérification des mots de passe. Ce n'est qu'en vrac que la vraie différence est.

Personnellement, j'aime bcrypt. Une version Perl devrait être disponible, car une recherche rapide sur Google a donné plusieurs correspondances possibles.