<style>
.password_strength{margin-right: 10px;border-radius:3px;color:#fff;display:inline-block;padding:3px 5px}.password_strength_1{background-color:#c0392b}.password_strength_2{background-color:#e74c3c}.password_strength_3{background-color:#e67e22}.password_strength_4{background-color:#2ecc71}.password_strength_5{background-color:#27ae60}body{direction: rtl;color:#000;font-family:Tahoma;font-size:14px}textarea{background:url("http://up.makuonline.ir/textra.png") repeat scroll 0 0 rgba(0,0,0,0);border:1px dashed #000;border-radius:10px;color:#000;direction:ltr;height:150px;margin-top:15px;max-width:100%;overflow-x:hidden;overflow-y:auto;padding:7px;resize:none;width:500px}button{background-color:#3abec0;border:1px solid#3abec0;border-radius:3px;color:#000;cursor:pointer;font-family:tahoma;margin-right:5px;margin-top:10px;padding:5px}button:hover{background-color:#f81a3d;border:1px solid#3abec0;border-radius:3px;color:#eee;margin-right:5px;margin-top:10px;padding:5px}textarea:hover{border:1px dashed #3abec0;border-radius:10px;box-shadow:0 0 10px 1px#3abec0;transition:all 0.1s ease 0s}textarea:focus{border:1px dashed #3abec0;border-radius:10px;box-shadow:0 0 10px 1px#3abec0;transition:all 0.1s ease 0s}form{ margin: 0 auto;text-align:center;}
</style>
<form name="pgenerate">
<button type="button" value="generatepassword" onClick="populateform(this.form.thelength.value)">ساخت پسورد</button><br><br>
<input type="text" size="25" name="output" maxlength="20" class="passwd"><br><br>
<b>انتخاب کنید پسورد چند رقمی باشد</b>
<input type="text" name="thelength" size="3" value="8" maxlength="2">
</form>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'></script>
<script>
var keylist=" !\"1234567890#$%&'/p;()*+,-./:;<=>ظشضطسصزیثربقذلفداغئتعونهمخکحگجچپ?@[\]^_`{|.ol}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª,ki«¬®¯°±jmu²³´µ¶·¸¹º»¼½¾¿nyhÀÁÂÃÄÅÆÇÈbgtÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝdceÞßàáâãäåæçèéêëìíîïðñxswòóôõö÷øùúûüýþÿ€~‰‡™•‘!$%Qº¸³©ª²¦¨ª¨£½¹º®°¢°«µpcga-/h÷‰€™&aq",
temp='';
function generatepass(plength){
temp='';
for(i=0;i<plength;i++){
temp+=keylist.charAt(Math.floor(Math.random()*keylist.length));
}
return temp;
}
function populateform(enterlength){document.pgenerate.output.value=generatepass(enterlength)}
(function($){
var passwordStrength = new function()
{
this.countRegexp = function(val, rex)
{
var match = val.match(rex);
return match ? match.length : 0;
};
this.getStrength = function(val, minLength)
{
var len = val.length;
if (len < minLength)
{
return 0;
}
var nums = this.countRegexp(val, /\d/g),
lowers = this.countRegexp(val, /[a-z]/g),
uppers = this.countRegexp(val, /[A-Z]/g),
specials = len - nums - lowers - uppers;
if (nums == len || lowers == len || uppers == len || specials == len)
{
return 1;
}
var strength = 0;
if (nums) { strength+= 2; }
if (lowers) { strength+= uppers? 4 : 3; }
if (uppers) { strength+= lowers? 4 : 3; }
if (specials) { strength+= 5; }
if (len > 10) { strength+= 1; }
return strength;
};
this.getStrengthLevel = function(val, minLength)
{
var strength = this.getStrength(val, minLength);
val = 1;
if (strength <= 0) {
val = 1;
} else if (strength > 0 && strength <= 4) {
val = 2;
} else if (strength > 4 && strength <= 8) {
val = 3;
} else if (strength > 8 && strength <= 12) {
val = 4;
} else if (strength > 12) {
val = 5;
}
return val;
};
};
$.fn.password_strength = function(options)
{
var settings = $.extend({
'container' : null,
'bar': null,
'minLength' : 6,
'texts' : {
1 : 'خیلی ضعیف',
2 : 'ضعیف',
3 : 'معمولی',
4 : 'قوی',
5 : 'خیلی قوی'
},
'onCheck': null
}, options);
return this.each(function()
{
var container = null, $bar = null;
if (settings.container)
{
container = $(settings.container);
}
else
{
container = $('<span/>').attr('class', 'password_strength');
$(this).after(container);
}
if (settings.bar)
{
$bar = $(settings.bar);
}
$(this).bind('keyup.password_strength', function()
{
var val = $(this).val(),
level = passwordStrength.getStrengthLevel(val, settings.minLength);
if (val.length > 0)
{
var _class = 'password_strength_' + level,
_barClass = 'password_bar_' + level;
if (!container.hasClass(_class) && level in settings.texts)
{
container.text(settings.texts[level]).attr('class', 'password_strength ' + _class);
}
if ($bar && !$bar.hasClass(_barClass))
{
$bar.attr('class', 'password_bar ' + _barClass);
}
}
else
{
container.text('').attr('class', 'password_strength');
if ($bar) {
$bar.attr('class', 'password_bar');
}
}
if (settings.onCheck) {
settings.onCheck.call(this, level);
}
});
if ($(this).val() != '') {
$(this).trigger('keyup.password_strength');
}
});
};
})(jQuery);
$(function () {$('.passwd').password_strength();});
</script>