Periksa Kekuatan Kata Sandi dengan JavaScript dan Ekspresi Reguler

Periksa Kekuatan Kata Sandi dengan JavaScript dan Ekspresi Reguler

Saya sedang melakukan penelitian untuk menemukan contoh yang baik dari pemeriksa Kekuatan Kata Sandi yang digunakan JavaScript serta Ekspresi Reguler (Ekspresi Reguler). Dalam aplikasi di tempat kerja saya, kami melakukan posting kembali untuk memverifikasi kekuatan kata sandi dan itu cukup merepotkan bagi pengguna kami.

Apa itu Regex?

Ekspresi reguler adalah urutan karakter yang menentukan pola pencarian. Biasanya, pola seperti itu digunakan oleh algoritma pencarian string menemukan or Temukan dan ganti operasi pada string, atau untuk validasi input. 

Artikel ini jelas tidak untuk mengajari Anda ekspresi reguler. Ketahuilah bahwa kemampuan untuk menggunakan Ekspresi Reguler akan sangat menyederhanakan pengembangan Anda saat Anda mencari pola dalam teks. Penting juga untuk dicatat bahwa sebagian besar bahasa pengembangan telah mengoptimalkan penggunaan ekspresi reguler ... jadi daripada mengurai dan mencari string selangkah demi selangkah, Regex biasanya jauh lebih cepat baik di sisi server maupun sisi klien.

Saya mencari di web sedikit sebelum saya menemukan contoh dari beberapa Ekspresi Reguler hebat yang mencari kombinasi panjang, karakter, dan simbol. Namun, kodenya sedikit berlebihan untuk selera saya dan disesuaikan untuk .NET. Jadi saya menyederhanakan kode dan memasukkannya ke dalam JavaScript. Ini membuatnya memvalidasi kekuatan kata sandi secara real-time di browser klien sebelum mempostingnya kembali ... dan memberikan beberapa umpan balik kepada pengguna tentang kekuatan kata sandi.

Ketik Kata Sandi

Dengan setiap goresan keyboard, sandi diuji terhadap ekspresi reguler dan kemudian umpan balik diberikan kepada pengguna dalam rentang di bawahnya.




Ketik kata sandi

Inilah Kodenya

The Ekspresi Reguler lakukan pekerjaan luar biasa dalam meminimalkan panjang kode:

  • Lebih banyak karakter - Jika panjangnya kurang dari 8 karakter.
  • Lemah - Jika panjangnya kurang dari 10 karakter dan tidak berisi kombinasi simbol, huruf kapital, teks.
  • Medium - Jika panjangnya 10 karakter atau lebih dan memiliki kombinasi simbol, huruf kapital, teks.
  • Kuat - Jika panjangnya 14 karakter atau lebih dan memiliki kombinasi simbol, huruf kapital, 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>

Mengeraskan Permintaan Kata Sandi Anda

Sangat penting bahwa Anda tidak hanya memvalidasi konstruksi kata sandi dalam Javascript Anda. Ini akan memungkinkan siapa pun yang memiliki alat pengembangan browser untuk melewati skrip dan menggunakan kata sandi apa pun yang mereka inginkan. Anda harus SELALU menggunakan pemeriksaan sisi server untuk memvalidasi kekuatan kata sandi sebelum menyimpannya di platform Anda.

34 Komentar

  1. 1
  2. 2

    TERIMA KASIH! TERIMA KASIH! TERIMA KASIH! Saya telah bermain-main selama 2 minggu dengan kode kekuatan kata sandi sialan dari situs web lain dan menarik rambut saya. Milik Anda singkat, berfungsi seperti yang saya inginkan dan yang terbaik, mudah bagi pemula javascript untuk memodifikasi! Saya ingin menangkap keputusan yang kuat dan tidak membiarkan formulir posting benar-benar memperbarui kata sandi pengguna kecuali itu memenuhi uji kekuatan. Kode orang lain terlalu rumit atau tidak berfungsi dengan benar atau sesuatu yang lain. Aku cinta kamu! XXXXX

  3. 4

    terima kasih Tuhan untuk orang-orang yang benar-benar dapat menulis sebuah kode dengan benar.
    Memiliki pengalaman yang sama dengan Janis.

    Ini berfungsi langsung di luar kotak yang sempurna untuk orang-orang seperti saya yang tidak dapat membuat kode javascript!

  4. 5
  5. 6

    Hai, pertama-tama terima kasih banyak atas upaya Anda, saya mencoba menggunakan ini dengan Asp.net tetapi tidak berhasil, saya menggunakan

    alih-alih memberi tag, dan tidak berhasil, ada saran ?!

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

    “P @ s $ w0rD” ditampilkan dengan kuat, meskipun itu akan dipecahkan dengan cukup cepat dengan serangan kamus…
    Untuk menerapkan fitur seperti itu pada solusi profesional, saya yakin penting untuk menggabungkan algoritme ini dengan pemeriksaan kamus.

  11. 12
  12. 13

    Terima kasih untuk kode kecil ini sekarang saya dapat menggunakannya untuk menguji kekuatan kata sandi saya ketika pengunjung saya memasukkan kata sandi mereka,

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

    dapatkah seseorang mengatakan, mengapa itu tidak berhasil dengan saya ..

    saya menyalin semua kode, dan menempelkannya ke notepad ++, tetapi tidak berfungsi sama sekali?
    tolong bantu aku..

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

    Jenis "pemeriksa kekuatan" ini membawa orang ke jalan yang sangat berbahaya. Ini menghargai keragaman karakter daripada panjang frasa sandi, membuatnya menilai kata sandi yang lebih pendek dan lebih beragam sebagai kata sandi yang lebih panjang dan kurang beragam. Itu adalah kekeliruan yang akan membuat pengguna Anda mendapat masalah jika mereka menghadapi ancaman peretasan yang serius.

    • 25

      Saya tidak setuju, Jordan! Contoh itu hanya diberikan sebagai contoh naskah. Rekomendasi saya untuk orang-orang adalah menggunakan alat manajemen kata sandi untuk membuat kata sandi independen untuk situs apa pun yang unik. Terima kasih!

  24. 26
  25. 27
  26. 28
  27. 29
  28. 31

    Saya menghargai Anda berbagi! Telah berusaha untuk meningkatkan kekuatan kata sandi di situs web kami dan yang ini berfungsi seperti yang saya inginkan. Terima kasih banyak!

  29. 33

    Anda adalah penyelamat hidup! Saya parsing string kiri kanan dan tengah dan berpikir ada cara yang lebih baik dan menemukan potongan kode Anda menggunakan Regex. Mampu mengutak-atiknya untuk situs saya… Anda tidak tahu seberapa banyak ini membantu. Terima kasih banyak, Douglas !!

Bagaimana menurut Anda?

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.