Penulis: Dflying Chen ( http://dflying.cnblogs.com/ )
Artikel ini berasal dari artikel di Vitamin C.net yang menggunakan metode matematika untuk mengurangi kesulitan dalam menerapkan penilaian logis. Kode deteksi berasal dari kelas JS THIN untuk memeriksa kekuatan kata sandi.
Atlas menyediakan fungsi berorientasi objek yang kuat dari JavaScript sisi klien. Saya telah melihat postingan keduanya di atas dalam beberapa hari terakhir dan merasa bahwa persyaratan fungsional ini masih sangat umum dalam pengembangan sehari-hari. Saya tidak ada pekerjaan di malam hari, jadi saya merangkum fungsi di atas ke dalam Perilaku di Atlas agar mudah digunakan kembali. Untuk informasi tentang Perilaku Atlas, silakan merujuk ke: Membuat Perilaku Kustom di ASP.NET Atlas.
Mengikuti lima langkah penyesuaian dalam artikel tentang Membuat Perilaku Kustom di ASP.NET Atlas, mudah untuk menulis Perilaku ini. Bagian yang paling penting adalah algoritma untuk menguji kekuatan kata sandi. Saya malas di sini dan hanya menyalin kode THIN sepenuhnya (saudara, jangan memarahi saya -_-b). Teman yang tertarik dapat merekonstruksinya menjadi sesuatu yang lebih " Atlas". . Fungsi deteksi ini akan dipicu setiap kali pengguna menekan tombol pada input yang sesuai:
function keyPressHandler() {
// Anda dapat memfaktorkan ulang bagian ini untuk membuat kode lebih 'seperti Atlas' :-)
var Kekuatan Kata Sandi ={
Level: ["Tinggi, ini sangat tinggi", "Tidak apa-apa", "Sial, ini tidak apa-apa"],
Nilai Level: [30,20,0],//Nilai kekuatan
Faktor: [1,2,5],//Penjumlahan karakter masing-masing huruf, angka, dan lain-lain
KindFactor: [0,0,10,20],//Kata sandi berisi beberapa jenis tambahan
Regex: [/[a-zA-Z]/g,/d/g,/[^a-zA-Z0-9]/g] //Karakter bilangan reguler dan aturan reguler lainnya
}
PasswordStrength.StrengthValue = fungsi(pwd)
{
var kekuatanNilai = 0;
var TerdiriJenis = 0;
for(var i = 0; i < ini.Regex.panjang;i++)
{
var chars = pwd.match(ini.Regex[i]);
jika(karakter != nol)
{
nilai kekuatan += karakter.panjang * faktor ini[i];
TersusunJenis++;
}
}
StrengthValue += this.KindFactor[ComposeKind];
mengembalikan kekuatanNilai;
}
Kekuatan Kata Sandi.Level Kekuatan = fungsi(pwd)
{
var nilai = ini.StrengthValue(pwd);
for(var i = 0; i < ini.LevelValue.panjang; i++)
{
jika(nilai >= ini.LevelValue[i] )
kembalikan ini.Level[i];
}
}
// akhir dari bagian pemfaktoran ulang
$(_checkResultLabelID).innerHTML = PasswordStrength.StrengthLevel(this.control.element.value);
}
Pada saat yang sama, atribut checkResultLabelID ditambahkan ke Perilaku ini untuk menentukan Label untuk menampilkan hasil pengujian:
var _checkResultLabelID;
this.get_checkResultLabelID = fungsi() {
kembalikan _checkResultLabelID;
}
this.set_checkResultLabelID = fungsi(nilai) {
jika (_checkResultLabelID != nilai) {
_checkResultLabelID = nilai;
this.raisePropertyChanged('checkResultLabelID');
}
}
Anda juga dapat dengan mudah menambahkan beberapa fungsi yang lebih menarik, seperti mengubah warna latar belakang teks perintah untuk masukan dengan kekuatan berbeda, dll. Untuk source code selengkapnya, silakan simak download di akhir artikel ini.
Langkah-langkah pengujiannya juga sangat sederhana. Pertama, tambahkan referensi ke Perilaku ini di ScriptManager:
<atlas:ScriptManager runat="server" ID="ScriptManager1">
<Skrip>
<atlas:ScriptReference Path="PasswordStrengthCheckBehavior.js" />
</Skrip>
</atlas:ScriptManager>
Kemudian tambahkan input ke halaman untuk memasukkan kata sandi (tipe tidak diatur ke kata sandi di program demo), dan rentang untuk menampilkan hasil tes:
<div>
Masukkan kata sandi:
<masukan id="kata sandi" ketik="teks" />
<span id="hasil"></span>
</div>
Terakhir, Atlas Script mempromosikan masukan di atas ke kontrol Atlas dan menambahkan Perilaku yang baru saja kita tulis:
<script type="text/xml-script">
<halaman xmlns:script=" http://schemas.microsoft.com/xml-script/2005 ">
<komponen>
<textBox id="kata sandi">
<perilaku>
<passwordStrengthCheckBehavior checkResultLabelID="hasil" />
</perilaku>
</Kotakteks>
</komponen>
</halaman>
</script>
Sesederhana itu, seperti berikut di browser:
Kata sandi sederhana:
Kata sandi sedang:
Kata sandi yang rumit:
Source code dan contoh program dapat diunduh disini: