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.

32 Yorumlar

  1. 1
  2. 2

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

  3. 4

    Aslında bir kod parçasını düzgün yazabilen insanlar için Tanrı'ya şükürler olsun.
    Janis ile aynı deneyime sahipti.

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

  4. 5

    Kutunun üzerinde tam olarak yazdığı şeyi yapan bir kod parçası yazdığınız için teşekkür ederiz!

  5. 6

    Merhabalar öncelikle çabalarınız için çok teşekkürler, bunu Asp.net ile kullanmayı denedim ama işe yaramadı, kullanıyorum

    etiketi yerine ve işe yaramadı, herhangi bir öneri ?!

  6. 7

    Nisreen için: vurgulanan kutudaki kod cut'n'paste ile çalışmıyor. Tek alıntı berbat. Gösteri bağlantısının kodu gayet iyi.

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

    "P @ s $ w0rD" güçlü bir şekilde görünüyor, ancak bir diksiyon saldırısıyla oldukça hızlı kırılacaktı ...
    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, şimdi bunu ziyaretçilerim şifrelerini girdiğinde şifre gücümü test etmek için kullanabilirim.

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

    biri benim neden işe yaramadığı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 bir "güç kontrol aracı", insanları çok tehlikeli bir yola götürür. Parola uzunluğu üzerinden karakter çeşitliliğine değer vererek, daha kısa, daha çeşitli parolaları daha uzun, daha az çeşitli parolalardan daha güçlü olarak derecelendirmesine yol açar. Bu, ciddi bir bilgisayar korsanlığı tehdidiyle karşı karşıya kalırlarsa kullanıcılarınızın başını belaya sokacak bir yanlıştır.

    • 25

      Katılmıyorum Jordan! Örnek, komut dosyasının bir örneği olarak basitçe sunulmuştur. İnsanlara tavsiyem, kendisine özgü herhangi bir site için bağımsız parolalar oluşturmak üzere 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 son olarak gönderinizi aldım ve gerçekten çok şaşırdım. TEŞEKKÜR EDERİM

  27. 29
  28. 31

Ne düşünüyorsunuz?

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