Maison >base de données >tutoriel mysql >Quels sont le meilleur type et la meilleure longueur de données pour stocker les mots de passe hachés ?

Quels sont le meilleur type et la meilleure longueur de données pour stocker les mots de passe hachés ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-18 07:51:09651parcourir

What's the Best Data Type and Length for Storing Hashed Passwords?

Le meilleur type et la meilleure longueur de données pour les mots de passe hachés

Dans la conception de bases de données, la sélection du type de données approprié pour stocker les mots de passe hachés est cruciale. Les fonctions de hachage, qui sont des fonctions mathématiques unidirectionnelles, produisent une sortie de longueur fixe quelle que soit la longueur d'entrée. Par conséquent, le choix du type de données dépend de l'algorithme de hachage spécifique utilisé.

Algorithme de hachage et type de données recommandés

Pour une protection par mot de passe moderne, il est fortement recommandé d'utiliser la clé -renforcement des algorithmes de hachage comme Bcrypt ou Argon2i. Ces algorithmes intègrent des sels et d'autres techniques pour améliorer la sécurité contre les attaques par force brute.

En PHP, par exemple, vous pouvez utiliser la fonction password_hash(), qui utilise Bcrypt par défaut. Le résultat est une chaîne de 60 caractères, qui peut être stockée dans un type de données CHAR(60).

$hash = password_hash("password", PASSWORD_DEFAULT);

Autres algorithmes de hachage et types de données correspondants

Même si les algorithmes de hachage renforçant les clés sont optimaux pour le stockage des mots de passe, d’autres fonctions de hachage trouvent encore des applications dans divers contextes. Voici quelques algorithmes couramment utilisés et leurs types de données correspondants :

  • MD5 (128 bits) : CHAR(32) ou BINARY(16)
  • SHA-1 (160 bits ): CHAR(40) ou BINARY(20)
  • SHA-256 (256 bits) : CHAR(64) ou BINARY(32)

Considérations supplémentaires

Le choix du type de données dépend également du système de base de données utilisé et des éventuelles contraintes d'espace. Les types de données binaires consomment généralement moins d'espace de stockage que les types de données caractères, mais la compatibilité avec UNHEX() et d'autres fonctions de manipulation de chaînes varie selon les bases de données.

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