Maison >base de données >tutoriel mysql >Quel type et quelle longueur de données dois-je utiliser pour stocker les mots de passe hachés ?

Quel type et quelle longueur de données dois-je utiliser pour stocker les mots de passe hachés ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-24 02:14:17610parcourir

What Data Type and Length Should I Use for Storing Hashed Passwords?

Type de données pour les mots de passe hachés et longueur optimale

Question : Comment déterminer le type et la longueur de données appropriés pour les mots de passe hachés ?

Lors de la mise en œuvre du hachage de mot de passe, il est crucial de choisir un type de données et une longueur appropriés pour stocker les valeurs hachées. En règle générale, les fonctions de hachage génèrent un résultat d'une longueur fixe, mais la longueur et la représentation varient en fonction de l'algorithme spécifique.

Réponse : La sélection du type et de la longueur des données dépend de l'algorithme de hachage employé :

  • MD5 : hachage de 128 bits ; peut être stocké sous CHAR(32) ou BINARY(16).
  • SHA-1 : hachage de 160 bits ; peut être stocké sous CHAR(40) ou BINARY(20).
  • SHA-256 : hachage de 256 bits ; peut être stocké sous CHAR(64) ou BINARY(32).
  • SHA-512 : hachage de 512 bits ; peut être stocké sous CHAR(128) ou BINARY(64).
  • BCrypt : hachage de 448 bits ; peut nécessiter CHAR(56), CHAR(60), CHAR(76), BINARY(56) ou BINARY(60).

Recommandation :

Le NIST suggère d'utiliser des fonctions de hachage SHA-256 ou supérieures pour les applications d'interopérabilité. Cependant, l'utilisation de ces fonctions de hachage à elles seules est insuffisante pour un stockage sécurisé des mots de passe.

Par conséquent, il est recommandé d'utiliser des algorithmes de hachage renforçant les clés comme Bcrypt ou Argon2i. Par exemple, la fonction password_hash() de PHP utilise Bcrypt par défaut, générant un hachage de 60 caractères. Pour répondre à cela, envisagez d'utiliser un type de données CHAR(60) pour le stockage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn