javascript - jQuery 密码生成器

标签 javascript jquery passwords

我有以下 JS 代码,用于检查密码强度并创建随 secret 码。我想要做的是编辑代码,而不是将生成的密码放在密码字段中,而是将它放在一个 span 标签中,比如 id 为 randompassword。此外,我希望它在默认情况下在 span 标记内有一个随 secret 码,然后当用户单击该按钮时,它将生成另一个密码。并将链接移动到 span 标签旁边而不是密码框旁边。

谢谢。

代码如下:

$.fn.passwordStrength = function( options ){
 return this.each(function(){
  var that = this;that.opts = {};
  that.opts = $.extend({}, $.fn.passwordStrength.defaults, options);

  that.div = $(that.opts.targetDiv);
  that.defaultClass = that.div.attr('class');

  that.percents = (that.opts.classes.length) ? 100 / that.opts.classes.length : 100;

   v = $(this)
  .keyup(function(){
   if( typeof el == "undefined" )
    this.el = $(this);
   var s = getPasswordStrength (this.value);
   var p = this.percents;
   var t = Math.floor( s / p );

   if( 100 <= s )
    t = this.opts.classes.length - 1;

   this.div
    .removeAttr('class')
    .addClass( this.defaultClass )
    .addClass( this.opts.classes[ t ] );

  })
  .after('<a href="#">Generate Password</a>')
  .next()
  .click(function(){
   $(this).prev().val( randomPassword() ).trigger('keyup');
   return false;
  });
 });

 function getPasswordStrength(H){
  var D=(H.length);
  if(D>5){
   D=5
  }
  var F=H.replace(/[0-9]/g,"");
  var G=(H.length-F.length);
  if(G>3){G=3}
  var A=H.replace(/\W/g,"");
  var C=(H.length-A.length);
  if(C>3){C=3}
  var B=H.replace(/[A-Z]/g,"");
  var I=(H.length-B.length);
  if(I>3){I=3}
  var E=((D*10)-20)+(G*10)+(C*15)+(I*10);
  if(E<0){E=0}
  if(E>100){E=100}
  return E
 }

 function randomPassword() {
  var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$_+?%^&)";
  var size = 10;
  var i = 1;
  var ret = ""
  while ( i <= size ) {
   $max = chars.length-1;
   $num = Math.floor(Math.random()*$max);
   $temp = chars.substr($num, 1);
   ret += $temp;
   i++;
  }
  return ret;
 }

};

$(document)
.ready(function(){
 $('#password1').passwordStrength({targetDiv: '#iSM',classes : Array('weak','medium','strong')});

});

最佳答案

// you can use another improved version to generate password as follows

//Define
function wpiGenerateRandomNumber(length) {

    var i = 0;
    var numkey = "";
    var randomNumber;

    while( i < length) {

        randomNumber = (Math.floor((Math.random() * 100)) % 94) + 33;

        if ((randomNumber >=33) && (randomNumber <=47)) { continue; }
        if ((randomNumber >=58) && (randomNumber <=90)) { continue; }
        if ((randomNumber >=91) && (randomNumber <=122)) { continue; }
        if ((randomNumber >=123) && (randomNumber <=126)) { continue; }

        i++;
        numkey += String.fromCharCode(randomNumber);

    }

    return numkey;

}

// Call

var myKey=wpiGenerateRandomNumber(10); // 10=length

alert(myKey);



// Output

2606923083

关于javascript - jQuery 密码生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2477862/

相关文章:

带有特定缩进的 JavaScript 意外返回值

javascript - 如何创建一个将参数传递给 REST Web 服务的 Controller

javascript - Jquery动态列表项选择第一个过滤的搜索项

passwords - 更改 WSO2 DAS 上的默认管理员密码

javascript - 从 AngularJS 插值中的数字中删除尾随零

javascript - 如何在 jQuery 运行时更改图像

javascript - 如何避免在子列表中调用回调函数

jquery - 基本 JQuery : perform plugin action after loading?

c# - ASP :Login : Password not autocomplete after enter Username

asp.net-membership - 如何为 ASP.NET 成员身份提供程序定义密码规则?