70 lines
2.4 KiB
JavaScript
70 lines
2.4 KiB
JavaScript
(function($) {
|
|
$.fn.extend({
|
|
pwdstr: function(crack_time_calculation, crack_time_message, hibp_message) {
|
|
return this.each(function() {
|
|
var hibpTimer;
|
|
|
|
$(this).on('input', function() {
|
|
var user_pw = $(this).val();
|
|
var crack_time = zxcvbn(user_pw);
|
|
var crack_time_str = crack_time.crack_times_display.offline_slow_hashing_1e4_per_second;
|
|
|
|
crack_time_str = crack_time_str.replace('centuries', aios_pwtool_trans.centuries);
|
|
crack_time_str = crack_time_str.replace('less than a second', aios_pwtool_trans.less_than_a_second);
|
|
|
|
crack_time_str = crack_time_str.replace('days', aios_pwtool_trans.days);
|
|
crack_time_str = crack_time_str.replace('years', aios_pwtool_trans.years);
|
|
crack_time_str = crack_time_str.replace('months', aios_pwtool_trans.months);
|
|
crack_time_str = crack_time_str.replace('hours', aios_pwtool_trans.hours);
|
|
crack_time_str = crack_time_str.replace('minutes', aios_pwtool_trans.minutes);
|
|
crack_time_str = crack_time_str.replace('seconds', aios_pwtool_trans.seconds);
|
|
|
|
$(crack_time_calculation).text(crack_time_str);
|
|
$(crack_time_message).show();
|
|
$(hibp_message).hide();
|
|
|
|
var meterFill = $('#aios_meter_fill');
|
|
if (user_pw.length === 0) {
|
|
meterFill.css('width', '0').css('background-color', 'transparent');
|
|
} else {
|
|
switch (crack_time.score) {
|
|
case 1:
|
|
meterFill.css('width', '20%').css('background-color', 'red');
|
|
break;
|
|
|
|
case 2:
|
|
meterFill.css('width', '50%').css('background-color', 'orange');
|
|
break;
|
|
|
|
case 3:
|
|
meterFill.css('width', '75%').css('background-color', 'yellow');
|
|
break;
|
|
|
|
case 4:
|
|
meterFill.css('width', '100%').css('background-color', 'green');
|
|
break;
|
|
|
|
default:
|
|
meterFill.css('width', '5%').css('background-color', 'red');
|
|
}
|
|
}
|
|
|
|
clearTimeout(hibpTimer);
|
|
hibpTimer = setTimeout(() => {
|
|
aios_send_command('hibp_check_password', {password: user_pw}, function(response) {
|
|
if (response.pwned) {
|
|
$(crack_time_message).hide();
|
|
$(hibp_message).show();
|
|
}
|
|
});
|
|
}, 600);
|
|
});
|
|
});
|
|
}
|
|
});
|
|
$(document).ready(function() {
|
|
$('#aiowps_password_test').pwdstr('#aiowps_password_crack_time_calculation', '#aiowps_password_crack_info_text', '#aiowps_password_hibp_info_text');
|
|
});
|
|
})(jQuery);
|
|
|