web-dev-qa-db-fra.com

Dois-je avoir une longueur de mot de passe maximale?

Je crée une webApp, et une partie de ma méthode d'authentification est la longueur du mot de passe.

Devrais-je mettre un en place? (disons, 50 caractères?) Ou dois-je simplement mettre une longueur minimale (actuellement à 6).

Y a-t-il des problèmes de ne pas mettre de longueur maximale?

27
jrg

Vous devriez hachage les mots de passe à l'aide d'un algorithme sécurisé au lieu de la stocker dans du texte clair. La fonction de hachage entraînera une taille de sortie constante quelle que soit la longueur de la chaîne d'entrée.

En utilisant une longueur minimale et peut-être d'autres règles de qualité est une bonne idée parce qu'elle aide un peu contre la paresse.

Si vous avez peur des attaques de service des services, vous pouvez mettre en place une limite latérale du serveur pour les champs d'entrée ordinaires, par exemple 1000 octets. Il est peu probable que quelqu'un souhaite utiliser un mot de passe aussi long.

34
Hendrik Brummermann

Ma recommandation: 1 024 octets.

La limitation des tailles de mot de passe est une limitation qui existait pour des raisons d'exigences techniques obsolètes. Le stockage moderne de mot de passe doit compter sur le hachage qui rend le champ de stockage de mot de passe une taille fixe indépendamment de la longueur du mot de passe. Nous ne voulons pas voir des mots de passe de 1 Mo comme cela indiquerait simplement que quelqu'un essaye de causer un déni de service. Je ne pense pas que je vais jamais voir une utilisation humaine un mot de passe de 1 024 caractères (ou plus long). Je pense que c'est une valeur suffisante pour éviter tout DOS réel et une valeur suffisamment élevée pour ne jamais être atteinte dans une circonstance raisonnable.

23
Jeff Ferland