Güçlü bir şifre nasıl oluşturulur. Güçlü bir parola nasıl oluşturulur 8 karakter ve Latince bir parola oluşturun

ihtiyacım var Düzenli ifade kontrol etmek için:

Şifre, en az bir sayı olmak üzere en az sekiz karakter içerir ve hem küçük hem de büyük harfleri ve #,? ,! ...

senin olamaz eski şifre veya kullanıcı adınızı, "şifrenizi" veya "web sitesi adınızı" içerir

Ve işte bir büyük harf, bir küçük harf ve bir sayı veya özel karakter dahil olmak üzere sekiz karakter için olan doğrulama ifadem.

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

Bir büyük harf, bir özel karakter ve alfanümerik karakter olmak üzere sekiz karakter uzunluğunda şifre için nasıl yazabilirim?

javascript asp.net normal ifadesi

24 Cevaplar


877

En az sekiz karakter, en az bir harf ve bir sayı:

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

En az sekiz karakter, en az bir harf, bir sayı ve bir özel karakter:

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

En az sekiz karakter, en az bir büyük harf, bir küçük harf ve bir sayı:

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

En az sekiz karakter, en az bir büyük harf, bir küçük harf, bir sayı ve bir özel karakter:

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

En az sekiz ve en fazla 10 karakter, en az bir büyük harf, bir küçük harf, bir sayı ve bir özel karakter:

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


53

Normal ifadelerde AND operatörü yoktur, bu nedenle gerçeklik VE, başka bir VE, başka bir şey tarafından belirlendiğinde geçerli parolalarla eşleşen bir normal ifade yazmak oldukça zordur...

Ancak normal ifadelerin bir VEYA operatörü vardır, bu nedenle DeMorgan teoremini uygulamanız ve geçersiz parolalarla eşleşen bir normal ifade yazmanız yeterlidir:

Sekiz karakterden az olan herhangi bir şey VEYA sayı içermeyen herhangi bir şey VEYA büyük harf içermeyen herhangi bir şey VEYA veya küçük harf içermeyen herhangi bir şey VEYAözel karakterler içermeyen herhangi bir şey.

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

Bununla eşleşen bir şey varsa, yanlış şifredir.


29

@anubhava'nın cevabı için sadece küçük bir gelişme: özel karakterler klavyedekilerle sınırlı olduğundan, bunu herhangi bir özel karakter için kullanın:

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

Bu normal ifade şu kuralları uygular:

  • En az bir büyük İngilizce harf
  • En az bir küçük İngilizce harf
  • En az bir rakam
  • En az bir özel karakter
  • En az sekiz uzunluk


20

Koşullarım için en popüler cevabı takip etmekte biraz zorlandım. Örneğin, kontrolüm aşağıdaki gibi karakterlerle başarısız oldu; veya [ . Özel karakterlerimi beyaz listeye almakla ilgilenmiyordum, bu yüzden bunun yerine bir test olarak [^ \ w \ s] kullandım - daha basit olarak - sözel olmayan karakterleri (sayısal olanlar dahil) ve boşluk olmayan karakterleri eşleştirmek. Özetlemek gerekirse, işte benim için işe yarayanlar ...

  • en az 8 karakter
  • en az 1 sayısal karakter
  • en az 1 küçük harf
  • en az 1 büyük harf
  • en az 1 özel karakter
/^(?=.*?)(?=.*?)(?=.*?)(?=.*? [^\w\s>).(8,)$/ ^ (? = \ S *) (? = \ S *) (? = \ S * \ d) (? = \ S * [^ \ w \ s]) \ S (8,) $

ancak _ (alt çizgi) özel karakter olarak kabul etmez (örn. Aa12345_).

Geliştirilmiş:

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


2

Burada bir sürü sorun buldum, bu yüzden kendiminkini yaptım.

İşte tüm ihtişamıyla, denemelerle:

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

Dikkat edilmesi gereken bir şey var:

  1. test ettiğim _ içerdiği için \ w kullanmıyor.
  2. Satırın sonuna uymayan eşleşen karakterlerle ilgili birçok sorun yaşadım.
  3. Karakterleri özel olarak belirtmez, çünkü farklı yerel ayarların klavyelerinde kullanmak isteyebilecekleri farklı karakterler olabilir.


1

Bunu sadece HTML5 ile yapabiliriz.

Model özelliğinde aşağıdaki kodu kullanın,

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

Mükemmel çalışacak.


1

Parolanın beklentilerinizi karşılayıp karşılamadığını doğrulamak için aşağıdaki normal ifade modelini kullanabilirsiniz.

((? =. * \\ d) (? =. *) (? =. *) (? =. * [ [e-posta korumalı]#$%^&*()]).{8,20})


1

Aşağıdaki koşulları karşılamak için aşağıdaki Normal İfadeyi kullanın:

Koşullar: 1] Min 1 özel karakter. 2] En az 1 sayı. 3] En az 8 karakter veya Daha Fazlası

Normal ifade: ^ (? =. * \ D) (? =. * [# [e-posta korumalı]!%&*?]){8,}$


0

Java / Android'de, aşağıdaki şemaya göre en az bir sayı, bir harf, bir özel karakter içeren bir şifreyi kontrol edin:

"^ (? =. *) (? =. * \\ d) (? =. * [ [e-posta korumalı]$!%*#?&]){8,}$"


0

Bunu dene:

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

Bu regex benim için mükemmel çalışıyor.

işlev myFunction () (var str = " [e-posta korumalı]"; var patt = new RegExp (" ^. * (? =. (8,)) (? =. *) (? =. *) (? =. * [@ # $% ^ & + =]) * $ "); var res = patt.test (str); console.log ("Normal eşleşmeler: ", res);)


0

Umarım aşağıdaki çalışır. Bunu özel bir Azure ilkesinde denedim.

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


-1

Önceki cevaplardan birinde bulduğum çözüm şöyle:

Minimum 8 karakter Minimum 1 büyük harf, 1 küçük harf, 1 sayı ve 1 özel karakter: "^ (? =. ) (?=. ) (?=. \ d) (? =. [[e-posta korumalı]$!% ?&]){8 ,}" ..

.

benim için işe yaramadı, ancak aşağıdaki basitleştirilmiş sürüm iyi çalışıyor (istediğiniz herhangi bir özel karakteri ekleyin, buraya # ekledim) ve ayrıca harflerle yaptığınız gibi bir sayı kuralı ekleyin:

"^(?=.*)(?=.*)(?=.*)(?=.*[[e-posta korumalı]$!%*?&]){8,}"


Java koşullu deyimi kullanarak Regex parola doğrulama

regex'te yeniyim. Temel olarak aşağıdaki gereksinim için Java'da bir parolayı doğrulamam gerekiyor: Parola en az altı karakter uzunluğunda olmalıdır. Şifre en fazla 20 karakter içerebilir.


normal ifade yalnızca harflere, sayılara, noktalara, alt çizgilere ve kısa çizgilere izin verir. en az 5 karakter

Aşağıdaki kurallara nasıl normal ifade sığdırılır, yalnızca harflere (büyük veya küçük harf), sayılara, noktalara, alt çizgilere, tirelere izin verilir, en az 5 karakter ortak terimler veya uzantılar içeremez ...


Regex "özel karakterlere veya boşluklara izin verme" ancak "sayılara ve" büyük harfe "VEYA" küçük harf "harflere" izin verir

Bu normal ifadeyi zaten kullanıyorum: ^ (6,) $ izin veriyor: sayılar, büyük harfler, küçük harfler. şunları yasaklar: boşluklar ve özel karakterler veya simgeler. Ama bunu şu şekilde değiştirmek istiyorum: - izin ver: ...


Şifre için normal ifade

Normal ifade parolası oluşturmak için yardıma ihtiyacım var. Şifre en az 4 karakter, harf (büyük ve küçük harf), rakam ve özel karakter içermelidir - boşluksuz. Normal bir ifade olarak MSN.


Verilen kuralların bir kombinasyonu için normal ifade

Belirli bir kuralın parolasını kontrol etmek için bir normal ifade yazmaya çalışıyorum. Parolalar en az 8 karakter uzunluğunda olmalı ve aşağıdaki 4 karakter türünden en az 3'ünü içermelidir: küçük harfler (ör. ...


Karmaşık parola doğrulaması için bir normal ifade

Bu kurallara uyduklarından emin olmak için şifreyi kontrol etmeliyim A) Şifre aşağıdaki 4 sınıftan 3'ünden karakter içermelidir: İngilizce Büyük Harfler A, B, C, ... Zet İngilizce Küçük Harf ...


Normal ifade şifresi en az 8 karakter, en az 1 rakam, harf ve özel karakter içermelidir

En az bir sayısal karaktere sahip olması gereken bir regex'e ihtiyacım var, hem büyük hem de küçük harflere izin verilir, özel karakterlere de izin verilir Bunu kullanıyorum ...


En az 6 karakterlik bir parola için normal ifade

Aşağıdaki koşullara sahip bir parolayı doğrulamak için normal ifadeye ihtiyacım var En az 6 karakter uzunluğunda En az 1 harf içermelidir En az 1 rakam içermelidir Parola özel içeriyorsa ...


Desen bazen eşleşir ve bazen eşleşmez

Parola doğrulama için bir alan .ts dosyasında aşağıdaki kodla açısal 5'te bir şablon uyguladım. Bu yapılmalıdır - en az sekiz karakter, en az bir büyük harf, bir ...


en az 8 karakter uzunluğunda, büyük harf, küçük harf, sayı, özel karakter ve tekrarlanmayan şifreler için normal ifade?

Merhaba, bu koşulları sağlayan bir düzenli ifade bulmak istiyorum. (1) şifreler en az 8 karakter uzunluğunda olmalı (2) en az büyük harf, küçük harf, rakam ve ...

12345 - şifreyi değiştirmemiz gerekiyor. Karmaşık bir şifre nasıl bulunur ve sonsuza kadar hatırlanır

İnternet dolandırıcıları, her gün posta kutularından ve kullanıcı hesaplarından milyonlarca parola çalar. Ancak umutsuzluğa kapılmayın - sizi kaynaklarınız üzerindeki kontrolünüzü kaybetmekten koruyacak çok basit ama etkili tavsiyeler vereceğiz.

İzlemeyi tercih edenler için bu yazının video versiyonunu hazırladık:



1. Karmaşık şifreler kullanın

Tahmin ettin, değil mi? Sıradanlık için üzgünüm, ancak bu, çoğu kullanıcı tarafından hala ihmal edilen ana tavsiyedir. Qwerty gibi şifrelerin bugüne kadar en popüler şifrelerin başında kalmasına şaşmamalı.

En sevdiğiniz karakterlerin adlarını, futbol kulübünün adını veya evcil hayvanınızın adını şifre olarak kullanmayın, çünkü bu bilgilere sosyal ağlarınızda kolayca ulaşabilirsiniz. Karmaşık bir parola, çeşitli karakter ve simgelerin rastgele bir birleşiminden oluşmalıdır.

2. Büyük ve küçük harfler, sayılar ve semboller kullanın

, kullanıcılar uzun parolaları sevmezler - unutması kolay ve yazması çok tembeldir. 8 karakterlik bir parola yalnızca bilgisayarların ilk zamanlarında güvenilir kabul ediliyordu; bugün, sekiz haneli bir kombinasyon birkaç saat içinde mekanik olarak eşleştiriliyor.

Bununla birlikte, farklı durumlarda sayılar ve harfler kullanılarak kısa bir parola (8 karaktere kadar) bile nispeten güvenli hale getirilebilir. Böyle bir şifrenin bulunması 2-3 gün sürecektir.

Maksimum güvenilirlik, yalnızca parola uzunluğunu artırarak ve mümkün olduğunda bu hizmetlerde farklı simgeler ($,%, &, '', #) kullanarak elde edilir.

3. Kısaltma kullanın

Unutmayacağınız bir cümle seçin ve şifreniz olarak her kelimenin ilk harflerini bir arada kullanın. Örneğin, 1828 şiiri "Lukomorye'nin yeşil bir meşesi var, o meşede altın bir zincir var ..." ULdzzcndt1828'e dönüşüyor.




4. Bir anahtar kelime ile kullanın

Bir anahtar kelime seçin ve hesabınız olan her sitenin adıyla karıştırın. örneğin, için anahtar kelime Sitedeki "antivirüs" şifresi şöyle görünecektir: c a ben n sen T B ben e v s ben e r T sen n s od32. Bu hilenin avantajı, her site için güçlü bir şifrenizin olmasıdır.

Yorumlarda önerildiği gibi, site adresi değişirse bu yöntem başarısız olabilir - ancak bu durumda otomatik şifre kurtarmayı kullanmak yeterlidir.

5. Farklı hesaplar için aynı şifreyi kullanmayın

Gerçek bir sanatçı olarak orijinal olun. Farklı sitelerin farklı güvenlik seviyelerine sahip olduğunu unutmayın. Örneğin, çoğu hizmet şifreleri şu şekilde gönderir: e-postaşifre kurtarma prosedürü aracılığıyla. Güvenli olmayan bir hizmetten şifre alan bilgisayar korsanları bunu postalarınız veya sosyal ağlarınız için kullanmayı deneyebilir - aynı şifre tüm kaynaklarınızın anahtarı olacaktır.

Riskleri azaltmanın tek yolu, tüm hesaplar için benzersiz, karmaşık şifreler kullanmaktır.

6. Şifreleri daha sık değiştirin

Mail.ru şifrelerinin çalınması durumunda, tüm şifrelerin %99.982'sinin alakasız olduğu ortaya çıktı. Bunun nedeni büyük ölçüde çalınan hesap veritabanının çoğunun bir dizi başka veritabanından derlenmesiydi.

Ancak 57 milyon adres söz konusu olduğunda (sızdırılan veritabanında bu tam olarak kaç giriş vardı), bu yeterli değil - Mail.Ru'daki posta kutunuzun siber suçlular tarafından ele geçirilmediğini garanti edebilir misiniz? Üstelik bu, sızdırılmış bir veritabanının yalnızca bir örneğidir - bugün bilgisayar korsanlarının elinde kaç milyon ilgili adresin dolaştığını bilmiyoruz.

Ancak, kullanıcılar şifrelerini düzenli olarak değiştirirlerse, bunların çok daha az olacağını kesin olarak biliyoruz.




7. Bir şifre yöneticisi kullanın

Parolanızı nasıl unutmazsınız hesap Temas halinde, posta kutusu ve internet bankacılığı? Çok az insan düzinelerce karmaşık şifreyi hatırlayabilir. Bu iyi.

Neyse ki, geliştiriciler yazılım bir çözüm buldu. Bugün, kullanıcıların sınırsız sayıda en karmaşık şifreleri güvenli bir şekilde saklamasına yardımcı olan birçok araç var. Örneğin, en popüler olanları kullanabilirsiniz - LastPass veya 1Password.

Ancak, şifre yöneticilerinin zayıf noktaları vardır. Bankacılık bilgilerinize erişebileceğiniz en önemli hesaplara, en güvenilir yazılımlar bile güvenilmemelidir.

8. "Gizli soruyu" unutmayın

1. ipucunda, verileri sizden kolayca öğrenilebilecek bir şifre olarak kullanmamanızı tavsiye ettik. sosyal ağlar... Aynısı, birçoğunun nedense unuttuğu veya önemsemediği "gizli sorular" için de geçerlidir. Ayrıca, saldırganlar popüler seçeneklerden oluşan bir veri tabanından kolayca yanıt alabilir.

Cevabın bununla hiçbir ilgisi olmayan saçma taktikler kullanmayı deneyin. gizli soru... Anne Kızlık Soyadı? Aspirin! Evcil Hayvan adı? 1989!

9. İki faktörlü kimlik doğrulamayı kullanın

Kimlik bilgisi sızıntısı riskini en aza indirmek için mümkün olan her yerde iki faktörlü kimlik doğrulamayı kullanın.

Çoğu sosyal ağ, posta ve bankacılık hizmeti, SMS yoluyla yetkilendirme onayını etkinleştirmenize izin verir. Böylece dolandırıcılar cep telefonunuz ellerinde değilse hesabınıza erişemeyeceklerdir.

Bu nedenle, bir Yandex hesabınız varsa, Yandex.Anahtar iki faktörlü kimlik doğrulama işlevini kullanmanızı öneririz:

  • Android veya iOS için uygulamayı indirin
  • Şifreyi veya QR kodunu girin
  • Yandex'e giriş yapın
  • Kâr!
Not; Akıllı telefonunuzun arızalanması veya kaybolması durumunda kurtarma kodlarını yazdırın ve kaydedin.


10. Antivirüs bizim her şeyimiz

Parolalar yalnızca bilgisayar korsanlarına ulaşmaz, onlara havada uçmazlar (kullanıcıların kendileri suçlulara hizmetleri için parola sağladığında olağan dolandırıcılık dışında).

Kişisel veriler toplanır ve çok özel olarak bilgisayar korsanlarına gönderilir kötü amaçlı yazılım, hangi kanca veya sahtekar tarafından PC'nize, dizüstü bilgisayarınıza veya akıllı telefonunuza girmeye çalışır.

Yani koymak güvenilir antivirüs c (ve veritabanlarını düzenli olarak güncellemek) paranızı, sinirlerinizi ve mahremiyetinizi korumanın ana yollarından biridir.

Güçlü bir parola için zorunlu gereksinimler

Şifre içermemelidir

  • Bulması kolay kişisel bilgiler. Örneğin: ad, soyadı veya doğum tarihi.
  • Açık ve basit kelimeler, ifadeler, set ifadeleri ve alınması kolay karakter setleri. Örneğin: parola, parol, abcd, qwerty veya asdfg, 1234567.

Şifre Oluşturma Yöntemleri

  • Parola oluşturmak için bir algoritma geliştirin.
    Örneğin, en sevdiğiniz şiiri veya sözü temel alın. Küçük ve büyük Latin harfleriyle yazın ve bazılarını benzer sayı veya sembollerle değiştirin: I_p0Mn | O_4y9n0e Mg№vEn | E (Harika bir anı hatırlıyorum).
  • Bir şifre üreticisi kullanın.
    Kaspersky Password Manager'ın yardımıyla karmaşık parolalar oluşturabilir, güçlerini kontrol edebilir ve bunları güvenli bir şekilde saklayabilirsiniz. Tarayıcınızda da ayarlayabilirsiniz Kaspersky uzantısı Sitelerdeki veri giriş alanlarını otomatik olarak doldurmak için Password Manager.

Parolanızı ne sıklıkla değiştirmelisiniz?

Şifre koruması

  • Şifrelerinizi kimseyle paylaşmayın veya göndermeyin.
  • Kağıt üzerine yazılmış şifreleri erişilebilir bir yerde bırakmayın.
  • Bir şifre yöneticisi veya tarayıcının yerleşik şifre deposunu kullanın.
  • Hesaplarınız için farklı şifreler kullanın. Aynı şifreleri kullanırsanız ve bir saldırgan bir hesabın şifresini bulursa, diğerlerine erişim sağlayabilir.


Bir parolanın normal ifadesi en az sekiz karakter, en az bir rakam ve küçük ve büyük harfler ile özel karakterler içermelidir (15)

Aşağıdaki koşulları karşılamak için aşağıdaki Normal İfadeyi kullanın:

Koşullar: 1] Min 1 özel karakter. 2] En az 1 sayı. 3] En az 8 karakter veya Daha Fazlası

Normal ifade: ^ (? =. * \ D) (? =. * [# [e-posta korumalı]!%&*?]){8,}$

Çevrimiçi test edebilir: https://regex101.com

Bunu kontrol etmek için bir normal ifade istiyorum:

Şifre, en az bir sayı olmak üzere en az sekiz karakter içerir ve hem küçük hem de büyük harfleri ve #? ,! ,

Eski şifreniz olamaz veya kullanıcı adınızı, "şifrenizi" veya "web sitesi adınızı" içeremez.

Ve işte bir büyük harf, bir küçük harf ve bir sayı veya özel karakter dahil olmak üzere sekiz karakter için olan doğrulama ifadem.

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

Şifre için nasıl yazabilirim, bir büyük harf, bir özel karakter ve alfanümerik karakter olmak üzere sekiz karakter olmalı?

@ClasG zaten önerdi:

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

ancak _ (alt çizgi) özel karakter olarak kabul etmez (Aa12345_ gibi).

Gelişmiş:

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

Java / Android'de, aşağıdaki düzende en az bir sayı, bir harf, bir özel karakter içeren bir şifreyi doğrulamak için:

"^ (? =. *) (? =. * \\ d) (? =. * [ [e-posta korumalı]$!%*#?&]){8,}$"

İhtiyacınıza göre, bu model iyi çalışmalıdır. Bunu dene,

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

Sadece bir dize değişkeni oluşturun, bir şablon atayın ve şablon doğruysa true, aksi takdirde false döndüren bir boole yöntemi oluşturun.

Dize kalıbı = "^ (? = (. * \ D) (1)) (. * \ S) (? =. *) (8,)"; String password_string = "Şifreyi buraya yazın" özel boolean isValidPassword (String password_string) (dönüş password_string.matches (Constants.passwordPattern);)

İçe aktarmak JavaScript dosyası jquery.validate.min.js.

Bu yöntemi kullanabilirsiniz:

$ .validator.addMethod ("pwcheck", işlev (değer) (dönüş / [\@\#\$\%\^\&\*\(\)\_\+\!>/.test(değer) && //.test(değer) && //.test(değer) && //.test(değer)));

  1. En az bir büyük İngilizce harf
  2. En az bir küçük İngilizce harf
  3. En az bir rakam
  4. En az bir özel karakter

Umarım aşağıdaki çalışır. Bunu özel bir Azure ilkesinde denedim.

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

Soruyu doğrudan yanıtlamıyor, ancak gerçekten bir normal ifade mi olmalı?

Çok fazla Perl kullandım ve normal ifade problemlerini çözmeye alıştım. Ancak, tüm görünümleri ve diğer tuhaflıkları ile daha karmaşık hale geldikçe, tüm bu küçük böcekleri öldürmek için düzinelerce birim testi yazmanız gerekir.

Ayrıca, normal ifade genellikle zorunlu veya işlevsel çözümden birkaç kat daha yavaştır.

Örneğin, aşağıdaki (çok FP değil) Scala işlevi, orijinal soruyu en popüler yanıtın normal ifadesinden yaklaşık üç kat daha hızlı çözer. Yaptığı şey de o kadar açık ki, bir birim testine ihtiyacınız yok:

Def validatePassword (şifre: String): Boolean = (if (password.length)< 8) return false var lower = false var upper = false var numbers = false var special = false password.foreach { c =>if (c.isDigit) sayılar = true else if (c.isLower) alt = true if (c.isUpper) üst = true else özel = true) alt && üst && sayılar && özel)

Bunu dene:

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

Bu normal ifade benim için harika çalışıyor.

işlev myFunction () (var str = " [e-posta korumalı]"; var patt = new RegExp (" ^. * (? =. (8,)) (? =. *) (? =. *) (? =. * [@ # $% ^ & + =]) * $ "); var res = patt.test (str); console.log ("Normal eşleşmeler: ", res);)

Bunu sadece HTML5 kullanarak yapabiliriz.

Şablon özelliğinde aşağıdaki kodu kullanın,

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

Harika çalışacak.

Normal ifadelerde AND operatörü yoktur, bu nedenle geçerlilik bir şey VE başka bir şey VE başka bir şey tarafından tanımlandığında geçerli parolalarla eşleşen bir normal ifade yazmak oldukça zordur ...

Ancak normal ifadelerin VEYA operatörü vardır, bu nedenle DeMorgan teoremini uygulamanız ve geçersiz parolalarla eşleşen bir normal ifade yazmanız yeterlidir:

Sekiz karakterden az olan herhangi bir şey VEYA sayı olmayan herhangi bir şey VEYA büyük harften başka bir şey değil YADA YADA hiçbir şey, küçük harf yok VEYAözel karakterlerden başka bir şey değil.

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

Bununla eşleşen bir şey varsa, yanlış şifredir.

Önceki cevaplardan birinde bulduğum çözüm:

Minimum 8 karakter, en az 1 alfabetik alfabe, 1 küçük harf, 1 sayı ve 1 özel karakter: “^ (? =. ) (? =. ) (? =. \ D) (? =. [ $ @ $!% ? &]) {8,} "

Benim için çalışmıyor, ancak aşağıdaki basitleştirilmiş sürüm iyi çalışıyor (istediğiniz herhangi bir özel karakteri ekleyin, buraya # ekledim) ve tıpkı harflerle yaptığınız gibi bir sayı kuralı ekleyin:

"^(?=.*)(?=.*)(?=.*)(?=.*[[e-posta korumalı]$!%*?&]){8,}"

Peter Mortensen'e cevap verirdim ama yeterince itibarım yok.

İfadeleri, belirtilen minimum gereksinimlerin her biri için idealdir. Özel karakterler gerektirmeyen ifadeleriyle ilgili sorun, özel karakterlerin olmaması ve ayrıca OP'nin isteğine inanmadığım maksimum gereksinimleri sağlamasıdır. Tipik olarak, kullanıcılarınızın parolalarını istedikleri kadar güçlü hale getirmelerini istersiniz; Neden Güçlü Parolaları Sınırlamalısınız?

Yani, "en az sekiz karakter, en az bir harf ve bir sayı":

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

minimum gereksinime ulaşır, ancak karakterlerin geri kalanı bir tek harf ve sayılar. Özel karakterlere izin vermek (ancak gerektirmemek) için şöyle bir şey kullanmalısınız:

^ (? =. *) (? =. * \ d). (8,) $ herhangi bir karaktere izin vermek için

^ (? =. *) (? =. * \ d) (8,) $ özel özel karakterlere izin vermek için

Aynı şekilde “en az sekiz karakter, en az bir büyük harf, bir küçük harf ve bir sayı:

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

bu minimum gereksinimi karşılar ancak izin verir bir tek harfler ve sayılar. Kullanım:

^ (? =. *) (? =. *) (? =. * \ d). (8,) $ herhangi bir karaktere izin vermek için

^ (? =. *) (? =. *) (? =. * \ d) (8,) özel özel karakterlere izin vermek için.

Aşağıdaki koşulları karşılamak için aşağıdaki Normal İfadeyi kullanın: Koşullar: 1] Min 1 büyük harf. 2] Min 1 küçük harf. 3] Min 1 özel karakter. 4] En az 1 sayı. 5] En az 8 karakter. 6] Maksimum 30 karakter. Normal İfade: /^(?=.*)(?=.*)(?=.*\d)(?=.*†# [e-posta korumalı]!%&*?]){8,30}$/

263 Swapnil tatkondawar

Bunu kontrol etmek için bir normal ifade istiyorum:

Şifre, en az bir sayı olmak üzere en az sekiz karakter içerir ve hem büyük hem de küçük harfler ile #,? ,! ...

Eski şifreniz olamaz veya kullanıcı adınızı, "şifrenizi" veya "web sitesi adınızı" içeremez.

Ve işte bir büyük harf, bir küçük harf ve bir sayı veya özel karakter dahil olmak üzere sekiz karakter için olan doğrulama ifadem.

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

Nasıl yazabilirim, şifre bir büyük harf, bir özel karakter ve alfasayısal karakterler dahil olmak üzere sekiz karakter uzunluğunda olmalı?

javascript normal ifade asp.net

24 cevap

En az sekiz karakter, en az bir harf ve bir sayı:

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

En az sekiz karakter, en az bir harf, bir sayı ve bir özel karakter:

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

En az sekiz karakter, en az bir büyük harf, bir küçük harf ve bir sayı:

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

En az sekiz karakter, en az bir büyük harf, bir küçük harf, bir sayı ve bir özel karakter:

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

En az sekiz ve en fazla 10 karakter, en az bir büyük harf, bir küçük harf, bir sayı ve bir özel karakter:

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

Normal ifadelerin AND operatörü yoktur, bu nedenle gerçeklik VE başka bir şey VE başka bir şey tarafından belirlendiğinde geçerli parolalarla eşleşen bir regex yazmak oldukça zordur ...

Ancak normal ifadelerin VEYA operatörü vardır, bu nedenle DeMorgan teoremini uygulamanız ve geçersiz parolalarla eşleşen bir normal ifade yazmanız yeterlidir:

Sekiz karakterden az olan herhangi bir şey VEYA hiçbir şey, sayı yok VEYA, büyük harf yok VEYA ya da küçük harf dışında hiçbir şey VEYAözel karakterleri olmayan herhangi bir şey.

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

Bununla eşleşen bir şey varsa, yanlış şifredir.

@anubhava'nın yanıtında küçük bir gelişme: özel karakter klavyedekilerle sınırlı olduğundan, onu herhangi bir özel karakter için kullanın:

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

Bu normal ifade şu kuralları izleyecektir:

  • En az bir üst harf İngilizce harf
  • En az bir küçük İngilizce harf
  • En az bir rakam
  • En az bir özel karakter
  • En az sekiz uzunluk

Koşullarıma verilen en popüler cevapları takip etmekte zorlandım. Örneğin, kontrolüm aşağıdaki gibi karakterlerle başarısız oldu; veya [ . Özel karakterlerimin beyaz listeleriyle ilgilenmiyordum, bu yüzden test olarak [^ \ w \ s] kullandım - sadece koydum - eşleşen karakterleri sözcüksüz (sayısal olanlar dahil) ve boşluksuz. Özetlemek gerekirse, işte benim için işe yarayanlar ...

  • en az 8 karakter
  • en az 1 sayısal karakter
  • en az 1 küçük harf
  • en az 1 büyük harf
  • en az 1 özel karakter
/^(?=.*?)(?=.*?)(?=.*?)(?=.*? [^\w\s>).(8,)$/

Peter Mortensen'e cevap verirdim ama yeterince itibarım yok.

İfadeleri, belirtilen minimum gereksinimlerin her biri için idealdir. Özel karakterler gerektirmeyen ifadeleriyle ilgili sorun, özel karakterlere de İZİN VERMEMESİ, bu nedenle OP tarafından talep edilmediğine inandığım maksimum gereksinimi de zorlamalarıdır. Tipik olarak, kullanıcılarınızın parolalarını istedikleri kadar güçlü hale getirmelerini istersiniz; Neden Güçlü Parolaları Sınırlamalısınız?

Yani, "en az sekiz karakter, en az bir harf ve bir sayı" ifadesi:

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

ulaşıldı asgari gereklilik, ancak karakterlerin geri kalanı yalnızca harf ve sayı olabilir. Özel karakterlere izin vermek (ancak gerektirmemek) için şöyle bir şey kullanmalısınız:

^ (? =. *) (? =. * \ d). (8,) $ herhangi bir karaktere izin vermek için

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

ancak _ (alt çizgi) özel karakter olarak kabul etmez (Aa12345_ gibi).

Bunu geliştirdi:

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

Aşağıdaki koşulları karşılamak için aşağıdaki normal ifadeyi kullanın:

Koşullar: 1] Min 1 özel karakter. 2] En az 1 sayı. 3] En az 8 karakter veya Daha Fazlası
gastroguru 2017