Periksa Kekuatan Kata Laluan dengan JavaScript dan Ungkapan Biasa

Periksa Kekuatan Kata Laluan dengan JavaScript dan Ungkapan Biasa

Saya melakukan kajian untuk mencari contoh yang baik dari Password Strength checker yang menggunakan JavaScript dan Ekspresi Biasa (Regex). Dalam aplikasi di tempat kerja saya, kami membuat catatan kembali untuk mengesahkan kekuatan kata laluan dan agak menyusahkan pengguna kami.

Apa itu Regex?

Ungkapan biasa adalah urutan watak yang menentukan corak carian. Biasanya, corak seperti itu digunakan oleh algoritma pencarian rentetan untuk mencari or cari dan tukar operasi pada rentetan, atau untuk pengesahan input. 

Artikel ini pasti tidak mengajar anda ungkapan biasa. Ketahuilah bahawa kemampuan menggunakan Ungkapan Biasa akan mempermudah perkembangan anda semasa anda mencari corak dalam teks. Penting juga untuk diperhatikan bahawa kebanyakan bahasa pengembangan telah mengoptimumkan penggunaan ekspresi biasa… jadi daripada mengurai dan mencari rentetan langkah demi langkah, Regex biasanya jauh lebih pantas dari sisi pelayan dan pelanggan.

Saya mencari di web sedikit sebelum saya menjumpai contoh beberapa Ungkapan Biasa yang hebat yang mencari gabungan panjang, watak, dan simbol. Bagaimanapun, kodnya sedikit berlebihan untuk selera saya dan disesuaikan untuk .NET. Oleh itu, saya mempermudah kod dan memasukkannya ke dalam JavaScript. Ini menjadikannya mengesahkan kekuatan kata laluan secara real-time pada penyemak imbas pelanggan sebelum mengeposnya kembali… dan memberikan beberapa maklum balas kepada pengguna mengenai kekuatan kata laluan.

Taip Kata Laluan

Dengan setiap papan kekunci, kata laluan diuji dengan ungkapan biasa dan kemudian maklum balas diberikan kepada pengguna dalam jangka masa di bawahnya.




Taip Kata Laluan

Inilah Kodnya

. Ekspresi Biasa lakukan pekerjaan yang hebat untuk meminimumkan panjang kod:

  • Lebih banyak watak - Sekiranya panjangnya di bawah 8 aksara.
  • Lemah - Jika panjangnya kurang dari 10 aksara dan tidak mengandungi gabungan simbol, huruf besar, teks.
  • sederhana - Sekiranya panjangnya 10 aksara atau lebih dan mempunyai gabungan simbol, huruf besar, teks.
  • strong - Sekiranya panjangnya 14 aksara atau lebih dan mempunyai gabungan simbol, huruf besar, teks.

<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>

Mengeras Permintaan Kata Laluan Anda

Anda tidak perlu hanya mengesahkan pembinaan kata laluan dalam Javascript anda. Ini akan membolehkan sesiapa sahaja yang mempunyai alat pengembangan penyemak imbas memintas skrip dan menggunakan kata laluan apa pun yang mereka mahukan. Anda harus SELALU menggunakan pemeriksaan sisi pelayan untuk mengesahkan kekuatan kata laluan sebelum menyimpannya di platform anda.

34 Komen

  1. 1
  2. 2

    TERIMA KASIH! TERIMA KASIH! TERIMA KASIH! Saya bermain-main selama 2 minggu dengan kod kekuatan kata laluan dari laman web lain dan mengeluarkan rambut saya. Milik anda pendek, berfungsi seperti yang saya mahukan dan yang paling baik, mudah untuk pemula javascript! Saya ingin menangkap keputusan kekuatan dan tidak membiarkan siaran borang untuk benar-benar mengemas kini kata laluan pengguna melainkan ia memenuhi ujian kekuatan. Kod orang lain terlalu rumit atau tidak berfungsi dengan betul atau yang lain. Saya sayang awak! XXXXX

  3. 4

    terima kasih Tuhan untuk orang yang benar-benar dapat menulis sekeping kod dengan betul.
    Mempunyai pengalaman yang sama dengan Janis.

    Ini berfungsi betul-betul di luar kotak yang sangat sesuai untuk orang seperti saya yang tidak boleh menggunakan kod javascript!

  4. 5
  5. 6

    Hai, pertama sekali terima kasih atas usaha anda, saya cuba menggunakannya dengan Asp.net tetapi tidak berjaya, saya menggunakan

    bukannya teg, dan tidak berjaya, ada cadangan ?!

  6. 7

    Kepada Nisreen: kod dalam kotak yang diserlahkan tidak berfungsi dengan cut'n'paste. Petikan tunggal tidak kemas. Kod pautan demonstrasi baik-baik saja.

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

    "P @ s $ w0rD" menunjukkan dengan kuat, walaupun akan cepat retak dengan serangan diksi ...
    Untuk menggunakan ciri seperti ini pada penyelesaian profesional, saya percaya penting untuk menggabungkan algoritma ini dengan pemeriksaan diksi.

  11. 12
  12. 13

    Terima kasih untuk kod kecil ini sekarang saya dapat menggunakannya untuk menguji kekuatan kata laluan saya semasa pelawat saya. Memasukkan kata laluan mereka,

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

    ada yang tahu, mengapa ia tidak berfungsi ..

    saya menyalin semua kod tersebut, dan tampalkannya ke notepad ++, tetapi sama sekali tidak berfungsi?
    tolong saya..

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

    Jenis "pemeriksa kekuatan" ini membawa orang ke jalan yang sangat berbahaya. Ia menghargai kepelbagaian watak sepanjang panjang frasa laluan, menjadikannya menilai kata laluan yang lebih pendek dan lebih beragam yang lebih kuat daripada kata laluan yang lebih panjang dan kurang berbeza. Itu adalah kesalahan yang akan membuat pengguna anda mendapat masalah sekiranya mereka menghadapi ancaman penggodaman yang serius.

    • 25

      Saya tidak setuju, Jordan! Contohnya hanya dikemukakan sebagai contoh skrip. Cadangan saya untuk orang ramai adalah menggunakan alat pengurusan kata laluan untuk membuat frasa laluan bebas untuk mana-mana laman web yang unik untuknya. Terima kasih!

  24. 26
  25. 27
  26. 28

    Saya sangat menghargai anda dicari berkali-kali tetapi terakhir saya mendapat jawatan anda dan saya benar-benar kagum. TERIMA KASIH

  27. 29
  28. 31

    Saya menghargai anda berkongsi! Telah mencari untuk meningkatkan kekuatan kata laluan di laman web kami dan ini berfungsi seperti yang saya mahukan. Terima kasih banyak-banyak!

  29. 33

    Anda adalah penjimat langsung! Saya sedang menguraikan rentetan kiri kanan dan tengah dan fikir ada cara yang lebih baik dan menemui kod anda menggunakan Regex. Mampu memperbaikinya untuk laman web saya ... Anda tidak tahu sejauh mana ini membantu. Terima kasih banyak Douglas !!

Apa yang anda fikir?

Laman web ini menggunakan Akismet untuk mengurangkan spam. Ketahui bagaimana data komen anda diproses.