Comment créer un mot de passe sécurisé. Comment créer un mot de passe fort Créer un mot de passe de 8 caractères et latin

j'ai besoin de expression régulière pour le vérifier :

Le mot de passe contient au moins huit caractères, dont au moins un chiffre, et comprend à la fois des lettres minuscules et majuscules et des caractères spéciaux tels que #, ? ,! ...

ça ne peut pas être le tien ancien mot de passe ou contenir votre nom d'utilisateur, « mot de passe » ou « nom de site Web »

Et voici mon expression de validation, qui comprend huit caractères, dont une majuscule, une minuscule et un chiffre ou caractère spécial.

(? = ^. (8,) $) ((? =. * \ D) | (? =. * \ W +)) (?! [. \ N]) (? =. *) (? =. * ). * $ "

Comment puis-je l'écrire car le mot de passe doit comporter huit caractères, dont une majuscule, un caractère spécial et des caractères alphanumériques ?

regex javascript asp.net

24 réponses


877

Au moins huit caractères, au moins une lettre et un chiffre :

"^ (? =. *) (? =. * \ d) (8,) $"

Au moins huit caractères, au moins une lettre, un chiffre et un caractère spécial :

"^ (? =. *) (? =. * \ d) (? =. * [@ $!% * #? &]) (8,) $"

Au moins huit caractères, au moins une lettre majuscule, une lettre minuscule et un chiffre :

"^ (? =. *) (? =. *) (? =. * \ d) (8,) $"

Au moins huit caractères, au moins une lettre majuscule, une lettre minuscule, un chiffre et un caractère spécial :

"^ (? =. *) (? =. *) (? =. * \ d) (? =. * [@ $!% *? &]) (8,) $"

Minimum huit et maximum 10 caractères, au moins une lettre majuscule, une lettre minuscule, un chiffre et un caractère spécial :

"^ (? =. *) (? =. *) (? =. * \ d) (? =. * [@ $!% *? &]) (8,10) $"


53

Les expressions régulières n'ont pas d'opérateur ET, il est donc assez difficile d'écrire une expression régulière qui correspond à des mots de passe valides lorsque la réalité est déterminée par quelque chose ET, autre chose ET, autre chose...

Mais les regex ont un opérateur OR, alors appliquez simplement le théorème de DeMorgan et écrivez une regex qui correspond aux mots de passe invalides :

Tout ce qui a moins de huit caractères OU tout ce qui ne contient pas de chiffres OU tout ce qui ne contient pas de lettres majuscules OU ou tout ce qui ne contient pas de lettres minuscules OU tout ce qui ne contient pas de caractères spéciaux.

^ (. (0,7) | [^ 0-9] * | [^ A-Z] * | [^ a-z] * | *) $

Si quelque chose correspond à cela, alors c'est le mauvais mot de passe.


29

Juste une légère amélioration pour la réponse de @anubhava : puisque les caractères spéciaux sont limités à ceux du clavier, utilisez ceci pour n'importe quel caractère spécial :

^ (? =. *?) (? = (. *) (1,)) (? = (. * [\ D]) (1,)) (? = (. * [\ W]) (1, )) (?!. * \ s). (8,) $

Cette regex appliquera ces règles :

  • Au moins une lettre majuscule anglaise
  • Au moins une lettre anglaise minuscule
  • Au moins un chiffre
  • Au moins un caractère spécial
  • Minimum huit de longueur


20

J'ai eu quelques difficultés à suivre la réponse la plus populaire pour ma situation. Par exemple, mon contrôle a échoué avec des caractères tels que ; ou [ . Je n'étais pas intéressé par la liste blanche de mes caractères spéciaux, j'ai donc plutôt utilisé [^ \ w \ s] comme test - plus simplement - correspondant aux caractères non verbaux (y compris les caractères numériques) et aux espaces non blancs. Pour résumer, voici ce qui a fonctionné pour moi...

  • au moins 8 caractères
  • au moins 1 caractère numérique
  • au moins 1 lettre minuscule
  • au moins 1 lettre majuscule
  • au moins 1 caractère spécial
/^(?=.*?)(?=.*?)(?=.*?)(?=.*? [^\w\s>).(8,)$/ ^ (? = \ S *) (? = \ S *) (? = \ S * \ d) (? = \ S * [^ \ w \ s]) \ S (8,) $

mais il n'accepte pas _ (trait de soulignement) comme caractère spécial (par exemple Aa12345_).

Amélioré :

^ (? = \ S *) (? = \ S *) (? = \ S * \ d) (? = \ S * ([^ \ w \ s] | [_])) \ S (8,) $


2

J'ai trouvé beaucoup de problèmes ici, alors j'ai fait le mien.

Le voici dans toute sa splendeur, avec des épreuves :

^ (? =. *) (? =. *) (? =. * \ d) (? =. * ([^ a-zA-Z \ d \ s])). (9,) $

Il y a quelque chose à faire attention :

  1. n'utilise pas \ w car cela inclut _, que je teste.
  2. J'ai eu beaucoup de problèmes avec les caractères correspondants qui ne correspondaient pas à la fin de la ligne.
  3. Ne spécifie pas spécifiquement les caractères, c'est aussi parce que différents paramètres régionaux peuvent avoir des caractères différents sur leurs claviers qu'ils peuvent vouloir utiliser.


1

Nous pouvons simplement le faire avec HTML5.

Utilisez le code ci-dessous dans l'attribut pattern,

Motif = "(? = ^. (8,) $) ((? =. * \ D) (? =. * \ W +)) (?! [. \ N]) (? =. *) (? = . *). * $ "

Cela fonctionnera parfaitement.


1

Vous pouvez utiliser le modèle regex ci-dessous pour valider le mot de passe, qu'il réponde ou non à vos attentes.

((? =. * \\ d) (? =. *) (? =. *) (? =. * [ [email protégé]#$%^&*()]).{8,20})


1

Utilisez l'expression régulière suivante pour remplir les conditions suivantes :

Conditions : 1] Min 1 caractère spécial. 2] Min 1 nombre. 3] Min 8 caractères ou plus

Regex : ^ (? =. * \ D) (? =. * [# [email protégé]!%&*?]){8,}$


0

En Java/Android, vérifiez un mot de passe avec au moins un chiffre, une lettre, un caractère spécial selon le schéma suivant :

"^ (? =. *) (? =. * \\ d) (? =. * [ [email protégé]$!%*#?&]){8,}$"


0

Essaye ça:

^.*(?=.{8,})(?=.*)(?=.*)(?=.*[@#$%^&+=])*$

Cette regex fonctionne parfaitement pour moi.

Fonction maFonction () (var str = " [email protégé]"; var patt = new RegExp (" ^. * (? =. (8,)) (? =. *) (? =. *) (? =. * [@ # $% ^ & + =]) * $ "); var res = patt.test (str); console.log (" Est-ce que des correspondances régulières : ", res);)


0

J'espère que le ci-dessous fonctionne. J'ai essayé cela dans une stratégie Azure personnalisée.

^(?=. ) (?=. ) (?=. \ d) (? =. [@#$%^&*-_+={}|\:",?/ ~"();!])({}|\\:",?/ ~"();!]|.([email protégé])){6,16}$


-1

La solution que j'ai trouvée dans l'une des réponses précédentes est la suivante:

Minimum 8 caractères minimum 1 alphabet majuscule, 1 alphabet minuscule, 1 chiffre et 1 caractère spécial : "^ (? =. ) (?=. ) (?=. \ d) (? =. [[email protégé]$!% ?&]){8 ,}" ..

.

cela n'a pas fonctionné pour moi, mais la version simplifiée suivante fonctionne bien (ajoutez n'importe quel caractère spécial que vous aimez, j'ai ajouté # ici) et ajoutez également une règle de nombre comme vous le faites avec des lettres comme :

"^(?=.*)(?=.*)(?=.*)(?=.*[[email protégé]$!%*?&]){8,}"


Validation du mot de passe Regex à l'aide d'une instruction conditionnelle Java

Je suis nouveau sur regex. Fondamentalement, je dois valider un mot de passe en Java pour l'exigence suivante : Le mot de passe doit comporter au moins six caractères. Le mot de passe peut contenir jusqu'à 20 caractères Afin de ...


regex n'autorise que les lettres, les chiffres, les points, les traits de soulignement, les tirets. au moins 5 caractères

Comment faire en sorte que les regex s'adaptent aux règles ci-dessous n'autorisent que les lettres (majuscules ou minuscules), les chiffres, les points, les traits de soulignement, les tirets d'au moins 5 caractères ne peuvent pas contenir de termes ou d'extensions courants ...


Regex pour "interdire les caractères spéciaux ou les espaces" mais "autoriser les chiffres et" majuscules "OU" minuscules "lettres"

J'utilise déjà cette regex : ^ (6,) $ elle permet : des chiffres, des lettres majuscules, des lettres minuscules. il interdit : les espaces et les caractères spéciaux ou symboles. Mais je veux le changer pour : - autoriser : ...


Expression régulière pour le mot de passe

J'ai besoin d'aide pour générer un mot de passe regex. Le mot de passe doit contenir au moins 4 caractères, des lettres (majuscules et minuscules), des chiffres et des caractères spéciaux - pas d'espaces. MSN en tant qu'expression régulière.


Regex pour une combinaison de règles données

J'essaie d'écrire une expression régulière pour vérifier le mot de passe d'une règle donnée. Les mots de passe doivent comporter au moins 8 caractères et contenir au moins 3 des 4 types de caractères suivants : lettres minuscules (par exemple, ...


Une expression régulière pour la validation de mot de passe complexe

Je dois vérifier le mot de passe pour m'assurer qu'il respecte ces règles A) Le mot de passe doit contenir des caractères de 3 des 4 classes suivantes : Anglais Majuscules A, B, C, ... Zet Anglais Minuscules ...


Le mot de passe Regex doit contenir au moins 8 caractères, au moins 1 chiffres, lettres et caractères spéciaux

J'ai besoin d'une expression régulière qui doit avoir au moins un caractère numérique, les lettres majuscules et minuscules sont autorisées, les caractères spéciaux sont également autorisés. J'utilise ceci ...


Regex pour un mot de passe d'au moins 6 caractères

J'ai besoin d'une regex pour valider un mot de passe avec les conditions ci-dessous Longueur au moins 6 caractères Doit contenir au moins 1 lettre Doit contenir au moins 1 chiffre Si le mot de passe contient spécial ...


Le motif parfois assorti et parfois pas

J'ai implémenté un modèle dans angulaire 5 avec le code suivant dans un fichier .ts pour la validation du mot de passe. Cela doit être fait - prise en charge d'un minimum de huit caractères, au moins une lettre majuscule, un ...


regex pour les mots de passe d'au moins 8 caractères, majuscules, minuscules, chiffres, caractères spéciaux et non répétitifs ?

Bonjour, je veux trouver une expression régulière qui satisfasse à ces conditions. (1) les mots de passe doivent comporter au moins 8 caractères (2) ils doivent contenir au moins des lettres majuscules, minuscules, des chiffres et...

12345 - nous devons changer le mot de passe. Comment trouver un mot de passe complexe et s'en souvenir pour toujours

Les escrocs sur Internet volent chaque jour des millions de mots de passe dans les boîtes aux lettres et les comptes d'utilisateurs. Mais ne désespérez pas, nous vous donnerons des conseils très simples mais efficaces qui vous éviteront de perdre le contrôle de vos ressources.

Pour ceux qui préfèrent regarder, nous avons préparé une version vidéo de cet article :



1. Utilisez des mots de passe complexes

Vous l'avez deviné, non? Désolé pour la banalité, mais c'est le conseil principal - qui est encore négligé par la plupart des utilisateurs. Pas étonnant que les mots de passe comme qwerty restent parmi les plus populaires à ce jour.

N'utilisez pas les noms de vos personnages préférés, le nom du club de football ou le nom de votre animal de compagnie comme mot de passe, car ces informations sont faciles à trouver sur vos réseaux sociaux. Un mot de passe complexe doit consister en une combinaison arbitraire de divers caractères et symboles.

2. Utilisez des lettres majuscules et minuscules, des chiffres et des symboles

, les utilisateurs n'aiment pas les mots de passe longs - ils sont faciles à oublier et trop paresseux à taper. Un mot de passe à 8 caractères n'était considéré comme fiable qu'au début des ordinateurs ; aujourd'hui, une combinaison à huit chiffres est appariée mécaniquement en quelques heures.

Cependant, même un mot de passe court (jusqu'à 8 caractères) peut être rendu relativement sécurisé en utilisant des chiffres et des lettres dans différents cas. Il faudra 2-3 jours pour trouver un tel mot de passe.

Une fiabilité maximale est obtenue en augmentant simplement la longueur du mot de passe et en utilisant différents symboles ($,%, &, '', #) dans ces services lorsque cela est possible.

3. Utilisez des acronymes

Choisissez une phrase que vous n'oublierez pas et utilisez une combinaison des premières lettres de chaque mot comme mot de passe. Par exemple, le poème de 1828 "Le Lukomorye a un chêne vert, une chaîne d'or sur ce chêne ..." se transforme en ULdzzcndt1828.




4. Utiliser avec un mot-clé

Choisissez un mot-clé et mélangez-le avec le nom de chaque site avec lequel vous avez un compte. Par exemple, pour mot-clé Le mot de passe "antivirus" sur le site ressemblera à ceci : c une je m vous t b je e v s je e r t vous m s od32. L'avantage de cette astuce est que vous avez un mot de passe fort pour chaque site.

Comme suggéré dans les commentaires, cette méthode peut échouer si l'adresse du site change - cependant, dans ce cas, il suffit d'utiliser la récupération automatique du mot de passe.

5. N'utilisez pas le même mot de passe pour différents comptes

En vrai artiste, soyez original. N'oubliez pas que différents sites ont des niveaux de sécurité différents. Par exemple, la plupart des services envoient des mots de passe via e-mail via la procédure de récupération de mot de passe. Après avoir obtenu un mot de passe d'un service dangereux, les pirates peuvent essayer de l'utiliser pour votre messagerie ou vos réseaux sociaux - le même mot de passe deviendra la clé de toutes vos ressources.

La seule façon d'atténuer les risques est d'utiliser des mots de passe uniques et complexes pour tous les comptes.

6. Changez les mots de passe plus souvent

Dans le cas du vol de mots de passe Mail.ru, 99,982% de tous les mots de passe se sont avérés non pertinents. Cela s'explique en grande partie par le fait que la majeure partie de la base de données des comptes volés a été compilée à partir d'un certain nombre d'autres bases de données.

Cependant, dans le cas de 57 millions d'adresses (c'est exactement le nombre d'entrées dans la base de données divulguée), cela ne suffit pas - pouvez-vous garantir que votre boîte aux lettres sur Mail.Ru n'a pas été compromise par des intrus ? De plus, ce n'est qu'un exemple de fuite de base de données - nous ne savons pas combien de millions d'adresses pertinentes se trouvent aujourd'hui entre les mains de pirates informatiques.

Mais nous savons avec certitude qu'il y en aurait beaucoup moins si les utilisateurs changeaient régulièrement leurs mots de passe.




7. Utilisez un gestionnaire de mots de passe

Comment ne pas oublier votre mot de passe Compte En contact avec, boites aux lettres et la banque en ligne ? Peu de gens peuvent se souvenir de dizaines de mots de passe complexes. C'est bon.

Heureusement, les développeurs Logiciel est venu avec une solution. Aujourd'hui, il existe de nombreux outils qui aident les utilisateurs à stocker en toute sécurité un nombre illimité des mots de passe les plus complexes. Par exemple, vous pouvez utiliser les plus populaires - LastPass ou 1Password.

Cependant, les gestionnaires de mots de passe ont leurs points faibles. Les comptes les plus importants via lesquels vos informations bancaires sont accessibles ne doivent pas être fiables, même avec le logiciel le plus fiable.

8. N'oubliez pas la "question secrète"

Dans l'astuce n° 1, nous vous recommandons de ne pas utiliser de données comme mot de passe qui peuvent être facilement apprises sur vous à partir de réseaux sociaux... Il en va de même pour les "questions secrètes", que, pour une raison quelconque, beaucoup oublient ou n'y attachent pas d'importance. De plus, les attaquants peuvent facilement obtenir une réponse dans une base de données d'options populaires.

Essayez d'utiliser des tactiques absurdes où la réponse n'a rien à voir avec Question secrète... Nom de jeune fille de la mère? Aspirine! Nom d'animal domestique? 1989 !

9. Utiliser l'authentification à deux facteurs

Pour minimiser le risque de fuites d'informations d'identification, utilisez l'authentification à deux facteurs dans la mesure du possible.

La plupart des réseaux sociaux, services postaux et bancaires vous permettent d'activer la confirmation d'autorisation par SMS. Ainsi, les fraudeurs ne pourront pas accéder à votre compte s'ils n'ont pas votre téléphone portable entre leurs mains.

Donc, si vous avez un compte Yandex, nous vous recommandons d'utiliser la fonction d'authentification à deux facteurs Yandex.Key :

  • Téléchargez l'application pour Android ou iOS
  • Entrez le mot de passe ou le code QR
  • Connectez-vous à Yandex
  • Profit!
P. S. Imprimez et enregistrez les codes de récupération en cas de panne ou de perte de votre smartphone.


10. L'antivirus est notre tout

Les mots de passe n'atteignent pas seulement les pirates informatiques, ne leur parviennent pas par les airs (sauf pour la fraude habituelle, lorsque les utilisateurs eux-mêmes fournissent aux criminels des mots de passe pour leurs services).

Les données personnelles sont collectées et envoyées à des pirates très spécifiques malware, qui par crochet ou par escroc s'efforcent d'obtenir sur votre PC, ordinateur portable ou smartphone.

Mettez donc antivirus fiable c (et mettre régulièrement à jour les bases de données) est l'un des principaux moyens d'économiser votre argent, vos nerfs et votre vie privée.

Exigences obligatoires pour un mot de passe fort

Le mot de passe ne doit pas contenir

  • Des informations personnelles faciles à trouver. Par exemple : prénom, nom ou date de naissance.
  • évident et mots simples, des phrases, des expressions et des jeux de caractères faciles à saisir. Par exemple : mot de passe, parol, abcd, qwerty ou asdfg, 1234567.

Méthodes de génération de mot de passe

  • Proposez un algorithme pour générer des mots de passe.
    Par exemple, prenez votre poème ou dicton préféré comme base. Écrivez-le en lettres latines minuscules et majuscules et remplacez certains d'entre eux par des nombres ou des symboles similaires : I_p0Mn | O_4y9n0e Mg№vEn | E (Je me souviens d'un moment merveilleux).
  • Utilisez un générateur de mot de passe.
    Avec l'aide de Kaspersky Password Manager, vous pouvez générer des mots de passe complexes, vérifier leur force et les stocker en toute sécurité. Vous pouvez également définir dans votre navigateur Extension Kaspersky Password Manager pour remplir automatiquement les champs de saisie de données sur les sites.

À quelle fréquence changer votre mot de passe

Mot de passe de protection

  • Ne partagez ni n'envoyez vos mots de passe à qui que ce soit.
  • Ne laissez pas les mots de passe écrits sur papier dans un endroit accessible.
  • Utilisez un gestionnaire de mots de passe ou le stockage de mots de passe intégré du navigateur.
  • Utilisez des mots de passe différents pour vos comptes. Si vous utilisez les mêmes mots de passe et qu'un attaquant découvre le mot de passe d'un compte, il peut accéder à tous les autres.


Une expression régulière pour un mot de passe doit contenir au moins huit caractères, au moins un chiffre et des lettres minuscules et majuscules et des caractères spéciaux (15)

Utilisez l'expression régulière suivante pour remplir les conditions suivantes :

Conditions : 1] Min 1 caractère spécial. 2] Min 1 nombre. 3] Min 8 caractères ou plus

Regex : ^ (? =. * \ D) (? =. * [# [email protégé]!%&*?]){8,}$

Peut tester en ligne : https://regex101.com

Je veux une regex pour vérifier que:

Le mot de passe contient au moins huit caractères, dont au moins un chiffre, et comprend à la fois des lettres minuscules et majuscules et des caractères spéciaux tels que # ? ,! ,

Il ne peut pas être votre ancien mot de passe ou contenir votre nom d'utilisateur, « mot de passe » ou « nom de site Web »

Et voici mon expression de validation, qui est pour huit caractères, dont une lettre majuscule, une lettre minuscule et un chiffre ou caractère spécial.

(? = ^. (8,) $) ((? =. * \ D) | (? =. * \ W +)) (?! [. \ N]) (? =. *) (? =. * ). * $ "

Comment puis-je l'écrire pour le mot de passe, il doit y avoir huit caractères dont une majuscule, un caractère spécial et des caractères alphanumériques ?

@ClasG déjà suggéré :

^ (? = \ S *) (? = \ S *) (? = \ S * \ d) (? = \ S * [^ \ w \ s]) \ S (8,) $

mais il n'accepte pas _ (trait de soulignement) comme caractère spécial (comme Aa12345_).

Amélioré:

^ (? = \ S *) (? = \ S *) (? = \ S * \ d) (? = \ S * ([^ \ w \ s] | [_])) \ S (8,) $

En Java/Android, pour valider un mot de passe avec au moins un chiffre, une lettre, un caractère spécial dans le schéma suivant :

"^ (? =. *) (? =. * \\ d) (? =. * [ [email protégé]$!%*#?&]){8,}$"

Selon vos besoins, ce modèle devrait fonctionner correctement. Essaye ça,

^ (? = (. * \ d) (1)) (. * \ S) (? =. *) (8,)

Créez simplement une variable de chaîne, affectez un modèle et créez une méthode booléenne qui renvoie true si le modèle est correct, false dans le cas contraire.

Modèle de chaîne = "^ (? = (. * \ D) (1)) (. * \ S) (? =. *) (8,)" ; String password_string = "Tapez le mot de passe ici" booléen privé isValidPassword (String password_string) (retournez password_string.matches (Constants.passwordPattern);)

Importer fichier JavaScript jquery.validate.min.js.

Vous pouvez utiliser cette méthode :

$ .validator.addMethod ("pwcheck", fonction (valeur) (retour / [\@\#\$\%\^\&\*\(\)\_\+\!>/.test(valeur) && //.test(valeur) && //.test(valeur) && //.test(valeur)));

  1. Au moins une lettre majuscule anglaise
  2. Au moins une lettre anglaise minuscule
  3. Au moins un chiffre
  4. Au moins un caractère spécial

J'espère que le ci-dessous fonctionne. J'ai essayé cela dans une stratégie Azure personnalisée.

(? =. ) (? =. ) (? =. \ d) (? =. [@ # $% ^ & * -_ + = {} | \: ",? / ~"();!])({}|\\:",?/ ~" (); ] |. (?! @)) {6,16} $

Ne répondant pas directement à la question, mais devrait-il vraiment s'agir d'une expression régulière ?

J'ai beaucoup utilisé Perl et je me suis habitué à résoudre les problèmes de regex. Cependant, comme ils deviennent plus complexes avec tous les looks et autres bizarreries, vous devez écrire des dizaines de tests unitaires pour tuer tous ces petits bugs.

De plus, regex est généralement plusieurs fois plus lent qu'une solution impérative ou fonctionnelle.

Par exemple, la fonction Scala suivante (pas si FP) résout la question d'origine environ trois fois plus rapidement que l'expression régulière de la réponse la plus populaire. Ce qu'il fait est également si clair que vous n'avez pas besoin d'un test unitaire :

Def validatePassword (mot de passe : String) : Boolean = (if (password.length< 8) return false var lower = false var upper = false var numbers = false var special = false password.foreach { c =>si (c.isDigit) nombres = vrai sinon si (c.isLower) inférieur = vrai sinon si (c.isUpper) supérieur = vrai sinon spécial = vrai) inférieur && supérieur && nombres && spécial)

Essaye ça:

^.*(?=.{8,})(?=.*)(?=.*)(?=.*[@#$%^&+=])*$

Cette regex fonctionne très bien pour moi.

Fonction maFonction () (var str = " [email protégé]"; var patt = new RegExp (" ^. * (? =. (8,)) (? =. *) (? =. *) (? =. * [@ # $% ^ & + =]) * $ "); var res = patt.test (str); console.log (" Est-ce que des correspondances régulières : ", res);)

Nous pouvons simplement le faire en utilisant HTML5.

Utilisez le code ci-dessous dans l'attribut de modèle,

Motif = "(? = ^. (8,) $) ((? =. * \ D) (? =. * \ W +)) (?! [. \ N]) (? =. *) (? = . *). * $ "

Cela fonctionnera très bien.

Les expressions régulières n'ont pas d'opérateur AND, il est donc assez difficile d'écrire une expression régulière qui correspond à des mots de passe valides lorsque la validité est définie par quelque chose ET autre chose ET autre chose ...

Mais les regex ont un opérateur OR, alors appliquez simplement le théorème de DeMorgan et écrivez une regex qui correspond aux mots de passe invalides :

Tout ce qui a moins de huit caractères OU n'importe quoi sans chiffres OU rien que des majuscules OU OU rien, pas de lettres minuscules OU rien que des caractères spéciaux.

^ (. (0,7) | [^ 0-9] * | [^ A-Z] * | [^ a-z] * | *) $

Si quelque chose correspond à cela, alors c'est le mauvais mot de passe.

La solution que j'ai trouvée dans l'une des réponses précédentes:

Minimum 8 caractères, au moins 1 alphabet alphabétique, 1 alphabet minuscule, 1 chiffre et 1 caractère spécial : « ^ (? =. ) (? =. ) (? =. \D) (? =. [ $ @ $!% ? &]) {8,} "

Ne fonctionne pas pour moi, mais la version simplifiée suivante fonctionne bien (ajoutez n'importe quel caractère spécial que vous aimez, j'ai ajouté # ici) et ajoutez une règle numérique comme vous l'avez fait avec les lettres :

"^(?=.*)(?=.*)(?=.*)(?=.*[[email protégé]$!%*?&]){8,}"

Je répondrais à Peter Mortensen, mais je n'ai pas assez de réputation.

Ses expressions sont idéales pour chacune des exigences minimales spécifiées. Le problème avec ses expressions, qui ne nécessitent pas de caractères spéciaux, est qu'elles n'ont pas non plus de caractères spéciaux et qu'elles fournissent également des exigences maximales, ce que je ne crois pas à la demande de l'OP. En règle générale, vous souhaitez que vos utilisateurs rendent leur mot de passe aussi fort qu'ils le souhaitent ; Pourquoi limiter les mots de passe forts ?

Ainsi, ses "au moins huit caractères, au moins une lettre et un chiffre":

^ (? =. *) (? =. * \ d) (8,) $

atteint l'exigence minimale, mais le reste des caractères peut être seul lettre et chiffres. Pour autoriser (mais pas exiger) les caractères spéciaux, vous devez utiliser quelque chose comme :

^ (? =. *) (? =. * \ d). (8,) $ pour autoriser tous les caractères

^ (? =. *) (? =. * \ d) (8,) $ pour autoriser les caractères spéciaux spéciaux

De même, « un minimum de huit caractères, au moins une lettre majuscule, une lettre minuscule et un chiffre :

^ (? =. *) (? =. *) (? =. * \ d) (8,) $

satisfait à cette exigence minimale mais permet seul lettres et chiffres. Usage:

^ (? =. *) (? =. *) (? =. * \ d). (8,) $ pour autoriser tous les caractères

^ (? =. *) (? =. *) (? =. * \ d) (8,) pour autoriser les caractères spéciaux.

Utilisez le Regex suivant pour satisfaire les conditions ci-dessous : Conditions : 1] Min 1 lettre majuscule. 2] Min 1 lettre minuscule. 3] Min 1 caractère spécial. 4] Min 1 nombre. 5] Min 8 caractères. 6] Maximum 30 caractères. Regex : /^(?=.*)(?=.*)(?=.*\d)(?=.*†# [email protégé]!%&*?]){8,30}$/

263 Swapnil tatkondawar

Je veux une regex pour vérifier que:

Le mot de passe contient au moins huit caractères, dont au moins un chiffre, et comprend à la fois des lettres majuscules et minuscules et des caractères spéciaux tels que #, ? ,! ...

Il ne peut pas être votre ancien mot de passe ou contenir votre nom d'utilisateur, « mot de passe » ou « nom de site Web »

Et voici mon expression de validation, qui est pour huit caractères, dont une lettre majuscule, une lettre minuscule et un chiffre ou caractère spécial.

(? = ^. (8,) $) ((? =. * \ D) | (? =. * \ W +)) (?! [. \ N]) (? =. *) (? =. * ). * $ "

Comment puis-je l'écrire, le mot de passe doit comporter huit caractères, dont une majuscule, un caractère spécial et des caractères alphanumériques ?

javascript regex asp.net

24 réponses

Au moins huit caractères, au moins une lettre et un chiffre :

"^ (? =. *) (? =. * \ d) (8,) $"

Au moins huit caractères, au moins une lettre, un chiffre et un caractère spécial :

"^ (? =. *) (? =. * \ d) (? =. * [@ $!% * #? &]) $!%*#?&]{8,}$"

Au moins huit caractères, au moins une lettre majuscule, une lettre minuscule et un chiffre :

"^ (? =. *) (? =. *) (? =. * \ d) (8,) $"

Au moins huit caractères, au moins une lettre majuscule, une lettre minuscule, un chiffre et un caractère spécial :

$!%*?&]{8,}$"

Minimum huit et maximum 10 caractères, au moins une lettre majuscule, une lettre minuscule, un chiffre et un caractère spécial :

"^ (? =. *) (? =. *) (? =. * \ d) (? =. * [@ $!% *? &]) $!%*?&]{8,10}$"

Les expressions régulières n'ont pas d'opérateur AND, il est donc assez difficile d'écrire une expression régulière qui correspond à des mots de passe valides lorsque la réalité est déterminée par quelque chose ET autre chose ET autre chose...

Mais les regex ont un opérateur OR, alors appliquez simplement le théorème de DeMorgan et écrivez une regex qui correspond aux mots de passe invalides :

Tout ce qui a moins de huit caractères OU rien, pas de chiffres OU, pas de majuscule OU ou rien que des minuscules OU tout ce qui n'a pas de caractères spéciaux.

^ (. (0,7) | [^ 0-9] * | [^ A-Z] * | [^ a-z] * | *) $

Si quelque chose correspond à cela, alors c'est le mauvais mot de passe.

Juste une légère amélioration de la réponse de @anubhava : puisque le caractère spécial est limité à ceux du clavier, utilisez-le pour n'importe quel caractère spécial :

^ (? =. *?) (? = (. *) (1,)) (? = (. * [\ D]) (1,)) (? = (. * [\ W]) (1, )) (?!. * \ s). (8,) $

Cette regex suivra ces règles :

  • Au moins une lettre majuscule en anglais
  • Au moins une lettre anglaise minuscule
  • Au moins un chiffre
  • Au moins un caractère spécial
  • Minimum huit de longueur

J'ai eu du mal à suivre les réponses les plus populaires à ma situation. Par exemple, mon contrôle a échoué avec des caractères tels que ; ou [ . Je n'étais pas intéressé par les listes blanches de mes caractères spéciaux, alors j'ai plutôt utilisé [^ \ w \ s] comme test - il suffit de mettre - des caractères appariés sans mots (y compris les chiffres) et sans espaces. Pour résumer, voici ce qui a fonctionné pour moi...

  • au moins 8 caractères
  • au moins 1 caractère numérique
  • au moins 1 lettre minuscule
  • au moins 1 lettre majuscule
  • au moins 1 caractère spécial
/^(?=.*?)(?=.*?)(?=.*?)(?=.*? [^\w\s>).(8,)$/

Je répondrais à Peter Mortensen, mais la réputation me manque.

Ses expressions sont idéales pour chacune des exigences minimales spécifiées. Le problème avec ses expressions, qui ne nécessitent pas de caractères spéciaux, est qu'elles N'AUTORISENT PAS non plus les caractères spéciaux, elles appliquent donc également l'exigence maximale, qui, je pense, n'est pas demandée par l'OP. En règle générale, vous souhaitez que vos utilisateurs rendent leurs mots de passe aussi forts qu'ils le souhaitent ; Pourquoi limiter les mots de passe forts ?

Ainsi, son expression "au moins huit caractères, au moins une lettre et un chiffre":

^ (? =. *) (? =. * \ d) (8,) $

atteint minimum requis, mais le reste des caractères ne peut être que des lettres et des chiffres. Pour autoriser (mais pas exiger) les caractères spéciaux, vous devez utiliser quelque chose comme :

^ (? =. *) (? =. * \ d). (8,) $ pour autoriser tous les caractères

^ (? = \ S *) (? = \ S *) (? = \ S * \ d) (? = \ S * [^ \ w \ s]) \ S (8,) $

mais il n'accepte pas _ (trait de soulignement) comme caractère spécial (comme Aa12345_).

Amélioré ceci :

^ (? = \ S *) (? = \ S *) (? = \ S * \ d) (? = \ S * ([^ \ w \ s] | [_])) \ S (8,) $

Utilisez l'expression régulière suivante pour remplir les conditions suivantes :

Conditions : 1] Min 1 caractère spécial. 2] Min 1 nombre. 3] Min 8 caractères ou plus
gastroguru 2017