Je réécris nos règles de validation de mot de passe pour répondre à un ensemble très strict d'exigences pour une application de formulaires Web asp.net C#. J'utilise regex depuis la plupart de ces éléments (tels que les min caractères, les caractères autorisés, etc.).Validation de mot de passe ASP.NET contient des caractères de 2 jeux
Une des conditions pour lesquelles je rencontre des difficultés pour trouver la solution est la suivante: Doit contenir des caractères de 2 des 4 classes de caractères autorisées.
Dans ce cas, les classes autorisées sont majuscules, minuscules, numériques et spéciales (US ASCII).
Si quelqu'un peut vous aider à écrire ce qui serait appréciable. Merci
Pourquoi un mot de passe aussi faible? Ce n'est pas «un ensemble très strict d'exigences», c'est en fait considéré très faible. Les utilisateurs devraient être autorisés à utiliser des * gros * mots de passe sans restrictions artificielles qui les obligent à utiliser des mots de passe courts et faibles. Pourquoi seulement les caractères ASCII? Pourquoi ne pas me laisser taper 'Τί σε νοιάζει εσένα τί σκέφτονται οι άλλοι?' –
En fait, les exigences sont pires que faibles. Ils * enfreignent * les directives du NIST des États-Unis, du NCSC du Royaume-Uni et du [Guide de mot de passe] de Microsoft (https://www.microsoft.com/fr-fr/research/wp-content/uploads/2016/06/Microsoft_Password_Guidance-1. pdf). Si vous êtes victime d'une violation, vous serez doublement responsable de l'application consciente de mots de passe faibles. Vérifiez [l'article de Troy Hunt] (https://www.troyhunt.com/passwords-evolved-authentication-guidance-for-the-modern-era/) sur les directives actuelles. –
Je ne pense pas qu'il soit possible de tout faire correspondre dans une seule regex. Mais le plus simple serait d'utiliser la méthode [contains] (https://msdn.microsoft.com/en-us/library/dy85x1sa (v = vs.110) .aspx) pour vérifier chaque restriction. Mais, jetez un coup d'oeil sur l'article @PanagiotisKanavos posté avant de faire quelque chose que vous pourriez regretter plus tard ... –