Генератор паролей jQuery - PullRequest
       12

Генератор паролей jQuery

1 голос
/ 19 марта 2010

У меня есть следующий код JS, который проверяет надежность пароля, а также создает случайный пароль. Я хочу отредактировать код так, чтобы вместо помещения сгенерированного пароля в поле пароля он помещался в тег span с, скажем, id randompassword. Кроме того, мне бы хотелось, чтобы по умолчанию в теге span был произвольный пароль, а затем, когда пользователь нажимает кнопку, он генерирует другой. А также переместите ссылку рядом с тегом 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')});

});

Ответы [ 3 ]

2 голосов
/ 01 февраля 2011
// 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
1 голос
/ 19 марта 2010

Эта строка:

$(this).prev().val( randomPassword() ).trigger('keyup');

вставляет значение после щелчка.Таким образом, вы можете изменить это значение, чтобы прикрепить пароль, где вы хотите.Например, вы можете изменить его на:

$('span#randompassword').html(randomPassword());

Вы также можете запустить его, когда страница загружается, чтобы сразу вставить что-то в этот промежуток:

$(document).ready(function(){
     $('span#randompassword').html(randomPassword());
});
0 голосов
/ 01 февраля 2011
//Very simple method to generate random number; can be use to generate random password key as well


jq(document).ready( function() {

jq("#genCodeLnk").click( function() {

d = new Date();

t = d.getTime();

jq("#cstm_invitecode").val(t);

});

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...