Je dois avoir mal rédigé le billet parce que vous êtes plusieurs à me répondre ça malgré le tout premier commentaire où j’explicite très clairement : Peu importe.

L’objet du billet n’est pas de donner un coût. C’est de dire qu’emmerder l’utilisateur avec des règles de construction complexes n’a qu’un impact marginal par rapport à la longueur du mot de passe.

Imposer d’ajouter ou non des symboles autres qu’alphanumériques est au mieux équivalent à ajouter un caractère à la chaîne.

La conclusion elle est vrai que tu utilises SHA directement (c’est mal), PBKDF2 (c’est moyen) ou Argon2 (c’est bien) puisqu’utiliser l’un ou l’autre ne change le coût que d’un coefficient fixe.

Et en pratique quand l’utilisateur va mettre un chiffre ou un symbole, ce sera souvent au début ou à la fin, souvent pour remplacer une lettre (souvent les mêmes). Quant aux symboles, on parle quasiment toujours des mêmes, et l’éventail réellement utilisé est très restreint.

Bref, arrêtez d’utiliser des contraintes énormes et donnez juste un feedback à l’utilisateur sur la robustesse réelle de son mot de passe.