jQuery實現密碼強度檢測,以破解時間來衡量

lsch9594 8年前發布 | 4K 次閱讀 JavaScript jQuery

[JavaScript]代碼    

(function($){ 
     $.fn.extend({  
         pwdstr: function(el) {         
            return this.each(function() {



                    $(this).keyup(function(){
                        $(el).html(getTime($(this).val()));
                    });

                    function getTime(str){

                    var chars = 0;
                    var rate = 2800000000;

                    if((/[a-z]/).test(str)) chars +=  26;
                    if((/[A-Z]/).test(str)) chars +=  26;
                    if((/[0-9]/).test(str)) chars +=  10;
                    if((/[^a-zA-Z0-9]/).test(str)) chars +=  32;

                    var pos = Math.pow(chars,str.length);
                    var s = pos/rate;

                    var decimalYears = s/(3600*24*365);
                    var years = Math.floor(decimalYears);

                    var decimalMonths =(decimalYears-years)*12;
                    var months = Math.floor(decimalMonths);

                    var decimalDays = (decimalMonths-months)*30;
                    var days = Math.floor(decimalDays);

                    var decimalHours = (decimalDays-days)*24;
                    var hours = Math.floor(decimalHours);

                    var decimalMinutes = (decimalHours-hours)*60;
                    var minutes = Math.floor(decimalMinutes);

                    var decimalSeconds = (decimalMinutes-minutes)*60;
                    var seconds = Math.floor(decimalSeconds);

                    var time = [];

                    if(years > 0){
                        if(years == 1)
                            time.push("1 year, ");
                        else
                            time.push(years + " years, ");
                    }
                    if(months > 0){
                        if(months == 1)
                            time.push("1 month, ");
                        else
                            time.push(months + " months, ");
                    }
                    if(days > 0){
                        if(days == 1)
                            time.push("1 day, ");
                        else
                            time.push(days + " days, ");
                    }
                    if(hours > 0){
                        if(hours == 1)
                            time.push("1 hour, ");
                        else
                            time.push(hours + " hours, ");
                    }
                    if(minutes > 0){
                        if(minutes == 1)
                            time.push("1 minute, ");
                        else
                            time.push(minutes + " minutes, ");
                    }
                    if(seconds > 0){
                        if(seconds == 1)
                            time.push("1 second, ");
                        else
                            time.push(seconds + " seconds, ");
                    }

                    if(time.length <= 0)
                        time = "less than one second, ";
                    else if(time.length == 1)
                        time = time[0];
                    else
                        time = time[0] + time[1];

                     return time.substring(0,time.length-2);
                    }

             });
        } 
    }); 
})(jQuery); 
 本文由用戶 lsch9594 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!