JavaScript ve Normal İfadelerle Parola Gücünü Kontrol Edin

JavaScript ve Normal İfadelerle Parola Gücünü Kontrol Edin

Parola Gücü denetleyicisinin iyi bir örneğini bulmak için biraz araştırma yapıyordum. JavaScript ve Düzenli ifadeler (Normal ifade). İşimdeki uygulamada, şifre gücünü doğrulamak için bir gönderi yapıyoruz ve bu, kullanıcılarımız için oldukça elverişsiz.

Regex nedir?

Normal ifade, bir arama modelini tanımlayan bir karakter dizisidir. Genellikle, bu tür desenler dizi arama algoritmaları tarafından kullanılır. bulmak or bul ve Değiştir dizeler üzerinde işlemler veya girdi doğrulama için. 

Bu makale kesinlikle size normal ifadeleri öğretmek için değildir. Metinde kalıp ararken, Normal İfadeleri kullanma yeteneğinin gelişiminizi kesinlikle kolaylaştıracağını bilin. Ayrıca, çoğu geliştirme dilinin düzenli ifade kullanımını optimize ettiğine dikkat etmek önemlidir… bu nedenle, dizeleri adım adım ayrıştırmak ve aramak yerine, Regex tipik olarak hem sunucu hem de istemci tarafında çok daha hızlıdır.

Bulmadan önce internette biraz aradım Örnek uzunluk, karakter ve sembollerin bir kombinasyonunu arayan bazı harika Normal İfadeler. Howver, kod benim zevkime göre biraz aşırıydı ve .NET için uyarlandı. Bu yüzden kodu basitleştirdim ve JavaScript'e koydum. Bu, parolayı geri göndermeden önce müşterinin tarayıcısında gerçek zamanlı olarak doğrulamasını sağlar… ve kullanıcıya parolanın gücü hakkında bazı geri bildirimler sağlar.

Bir şifre girin

Klavyenin her vuruşunda, parola normal ifadeye göre test edilir ve ardından kullanıcıya altındaki bir aralıkta geri bildirim sağlanır.




Şifreyi yaz

İşte Kod

The Düzenli ifadeler kodun uzunluğunu en aza indirmek için harika bir iş yapın:

  • Daha fazla karakter - Uzunluk 8 karakterin altındaysa.
  • Zayıf - Uzunluk 10 karakterden azsa ve semboller, büyük harfler, metin kombinasyonu içermiyorsa.
  • Orta - Uzunluk 10 karakter veya daha fazlaysa ve semboller, büyük harfler, metin kombinasyonu varsa.
  • Güçlü - Uzunluk 14 karakter veya daha fazlaysa ve semboller, büyük harfler, metin kombinasyonuna sahipse.

<script language="javascript">
    function passwordChanged() {
        var strength = document.getElementById('strength');
        var strongRegex = new RegExp("^(?=.{14,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
        var mediumRegex = new RegExp("^(?=.{10,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
        var enoughRegex = new RegExp("(?=.{8,}).*", "g");
        var pwd = document.getElementById("password");
        if (pwd.value.length == 0) {
            strength.innerHTML = 'Type Password';
        } else if (false == enoughRegex.test(pwd.value)) {
            strength.innerHTML = 'More Characters';
        } else if (strongRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:green">Strong!</span>';
        } else if (mediumRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:orange">Medium!</span>';
        } else {
            strength.innerHTML = '<span style="color:red">Weak!</span>';
        }
    }
</script>
<input name="password" id="password" type="text" size="15" maxlength="100" onkeyup="return passwordChanged();" />
<span id="strength">Type Password</span>

Şifre Talebinizi Sertleştirme

Javascript'inizde sadece şifre yapısını doğrulamamanız çok önemlidir. Bu, tarayıcı geliştirme araçlarına sahip herkesin komut dosyasını atlamasını ve istediği şifreyi kullanmasını sağlar. Parola gücünü platformunuzda saklamadan önce HER ZAMAN sunucu tarafı kontrolünden geçirmelisiniz.

34 Yorumlar

  1. 1
  2. 2

    TEŞEKKÜR EDERİM! TEŞEKKÜR EDERİM! TEŞEKKÜR EDERİM! 2 haftadır diğer web sitelerinden gelen lanet olası şifre gücü koduyla dalga geçiyor ve saçımı çekiyorum. Sizinki kısa, tam benim istediğim gibi çalışıyor ve hepsinden önemlisi, bir javascript acemi için değiştirmesi kolay! Güç kararını yakalamak ve güç testini karşılamadığı sürece formun gönderisinin kullanıcının şifresini gerçekten güncellemesine izin vermemek istedim. Diğer kişilerin kodu çok karmaşıktı veya doğru çalışmadı ya da başka bir şey. Seni seviyorum! XXXXX

  3. 4

    gerçekten düzgün bir kod parçası yazabilen insanlar için tanrıya şükür.
    Janis ile aynı deneyime sahipti.

    Bu, benim gibi javascript kodlayamayan insanlar için mükemmel olan kutudan çıkar çıkmaz çalışır!

  4. 5
  5. 6

    merhaba öncelikle emeğiniz için çok teşekkürler asp.net ile denedim ama olmadı

    etiket yerine ve işe yaramadı, herhangi bir öneriniz var mı?!

  6. 7

    Nisreen'e: vurgulanan kutudaki kod kes ve yapıştır ile çalışmıyor. Tek alıntı berbat. Gösteri bağlantısının kodu olsa iyi.

  7. 8
  8. 9
  9. 10
  10. 11

    "P@s$w0rD" güçlü görünüyor, ancak bir sözlük saldırısıyla oldukça hızlı bir şekilde kırılabilir…
    Böyle bir özelliği profesyonel bir çözüme yerleştirmek için, bu algoritmayı bir sözlük kontrolü ile birleştirmenin önemli olduğuna inanıyorum.

  11. 12
  12. 13

    Bu küçük kod için teşekkürler, artık ziyaretçilerim şifrelerini girdiğinde şifremin gücünü test etmek için kullanabilirim.

  13. 14
  14. 15
  15. 16
  16. 17
  17. 18

    Paylaşım için teşekkürler. Bu sayfada birkaç kırık bağlantınız var. Bilginize.

  18. 19

    biri benimkinde neden çalışmadığını söyleyebilir mi?

    tüm kodu kopyaladım ve notepad++ 'a yapıştırdım ama hiç çalışmıyor mu?
    Bana yardım edin lütfen ..

  19. 20
  20. 21
  21. 22
  22. 23
  23. 24

    Bu tür "güç kontrol cihazı" insanları çok tehlikeli bir yola sokar. Parola uzunluğundan çok karakter çeşitliliğine değer verir ve daha kısa, daha çeşitli parolaları daha uzun ve daha az çeşitliliğe sahip parolalardan daha güçlü olarak değerlendirmesini sağlar. Bu, ciddi bir bilgisayar korsanlığı tehdidiyle karşı karşıya kalırlarsa, kullanıcılarınızın başını belaya sokacak bir yanılgıdır.

    • 25

      Ben katılmıyorum, Jordan! Örnek basitçe betiğin bir örneği olarak ortaya kondu. İnsanlara tavsiyem, kendisine özgü herhangi bir site için bağımsız parolalar oluşturmak için bir parola yönetim aracı kullanmaktır. Teşekkürler!

  24. 26
  25. 27
  26. 28

    Bu kadar çok arandığınız için gerçekten minnettarım ama sonunda yazınızı aldım ve gerçekten şaşırdım. TEŞEKKÜR EDERİM

  27. 29
  28. 31

    paylaştığınız için minnettarım! Web sitemizdeki şifre gücünü artırmak istiyordum ve bu benim istediğim gibi çalıştı. Çok teşekkür ederim!

  29. 33

    Sen bir canlı kurtarıcısın! Sağ ve ortadaki dizeleri ayrıştırıyordum ve daha iyi bir yol olduğunu düşündüm ve Regex kullanarak kod parçanızı buldum. Sitem için onunla uğraşmayı başardım… Bunun ne kadar yardımcı olduğu hakkında hiçbir fikriniz yok. Çok teşekkürler Douglas!!

Ne düşünüyorsunuz?

Bu site spam'i azaltmak için Akismet'i kullanıyor. Yorum verilerinizin nasıl işlendiğini öğrenin.