/ / regex pre slabé heslo - c #, regex, validácia

regex pre slabé heslo - c #, regex, validácia

Potrebujem regulárny výraz, ktorý skontroluje, či sa heslo nezhoduje s určitými slovami (napríklad heslo a 12345). Skúsil som niekoľko kombinácií, ale mám problémy s negáciou.

Ide o atribút validácie dátových údajov, ak je to relevantné.

odpovede:

2 pre odpoveď č. 1

Negation v Regex funguje najlepšie s negatívnymi lookaheads ako

"^(?!password)(?!12345)"

Myslím si však, že používatelia môžu byť pri vytváraní zlých hesiel veľmi šikovní a vytvorenie výrazu, ktorý ich uloví, bude dosť ťažké.


1 pre odpoveď č. 2

Naozaj chcete toto dosiahnuť použitím aregulárny výraz? Viac "slabé" slová, s ktorými prichádzate, budú mať dlhšie a viac zmätočné regex. Prečo nie len vytvoriť zoznam neprijateľných slov a použiť slučku / LINQ a skontrolovať, či heslo obsahuje niektorú z nich? Bude stále dosť rýchle a ľahko čitateľné.

Jedna vec, ktorú ani regex, ktorý sa pýtate, nie jepre, alebo moje riešenie vyššie sa stará o je detekcia n počet po sebe idúcich čísel / znakov. Hľadáte len 12345? Alebo hľadáte niečo, čo tiež detekuje reťazce ako 1234567, 1234 alebo 56789? To si vyžiada určitú ďalšiu prácu.