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.
Saya menjumpai pemeriksa kekuatan kata laluan yang lain. Algoritma mereka berdasarkan kamus kata. Cubalah di microsoft.com - http://www.microsoft.com/protect/yourself/password/checker.mspx dan satu di itsimpl.com - http://www.itsimpl.com
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
Sama-sama! Sama-sama! Sama-sama!
Saya cintakan awak juga!
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!
Terima kasih kerana menulis sepotong kod yang sesuai dengan apa yang tertulis di kaleng!
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 ?!
Kepada Nisreen: kod dalam kotak yang diserlahkan tidak berfungsi dengan cut'n'paste. Petikan tunggal tidak kemas. Kod pautan demonstrasi baik-baik saja.
Hei, saya suka skrip anda! Saya menerjemahkannya ke dalam bahasa Belanda, dan saya menyiarkannya di forum saya di sini!
bagus! bagaimana ia harus dilakukan pada pelanggan
kerja yang sangat bagus….
Terima kasih Douglas, saya menggunakannya untuk pekerjaan saya sekarang.
"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.
Berfungsi hebat di XULRunner dengan sedikit perubahan. Terima kasih!
Terima kasih untuk kod kecil ini sekarang saya dapat menggunakannya untuk menguji kekuatan kata laluan saya semasa pelawat saya. Memasukkan kata laluan mereka,
Pengekodan yang hebat
Skripnya hebat. Saya pernah gunakan dalam projek kami sekarang
Terima kasih untuk berkongsi!
Ungkapan yang begitu sederhana dan hebat. Saya sebagai penguji memperoleh TC saya dari ungkapan ini.
Terima kasih kerana berkongsi. Anda mempunyai beberapa pautan yang rosak di halaman ini. FYI.
ada yang tahu, mengapa ia tidak berfungsi ..
saya menyalin semua kod tersebut, dan tampalkannya ke notepad ++, tetapi sama sekali tidak berfungsi?
tolong saya..
Hebat !!!!! Terima kasih.
Lelaki kerja yang hebat! Ringkas dan berkesan. Terima kasih banyak kerana berkongsi!
terima kasih
Bagus, terima kasih. Tetapi… Apa contoh pw yang KUAT? 'tidak dapat menjumpainya! - {}
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.
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!
terima kasih berjaya.
Terima kasih sudah berjaya
Saya sangat menghargai anda dicari berkali-kali tetapi terakhir saya mendapat jawatan anda dan saya benar-benar kagum. TERIMA KASIH
Terima kasih kawan. Baru sahaja disebarkan di laman web saya dan berfungsi dengan baik.
Suka mendengarnya! Sama-sama!
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!
Terima kasih, harap anda dapat menyesuaikannya mengikut keperluan.
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 !!
Hebat untuk dengar!