如何调整随机密码的长度?

时间:2013-08-25 11:55:43

标签: javascript jquery html random input-field

早上好,

我有这段代码(只是一个例子):

function random(min, max) {
    return min + parseInt(Math.random() * (max - min + 1));
}
function generatePassword(length, charset) {
    var password = "";
    while (length--) {
        password += charset[random(0, charset.length - 1)];
    }
    return password;
}
function getNewPassword() {
    $('#password').text(generatePassword(12, "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789!?#@*&.,;:+-=()[]_"));
}

并且想在HTML中添加一个输入字段,我可以在其中设置生成密码的长度。

你能找到我的解决方案吗? : - )

http://jsfiddle.net/RnsTq/

6 个答案:

答案 0 :(得分:3)

而不是调用12中的generatePassword使用parseInt($('#len').val(), 10),而len将是输入元素的ID。

答案 1 :(得分:2)

你有它:http://jsbin.com/odosoy/94/edit

的Javascript

$(document).ready(function() {
  $("#generate").click(function() {
    getNewPassword();
  });

  function random(min, max) {
    return min + parseInt(Math.random() * (max - min + 1), 10);
  }
  function generatePassword(charset) {
    var length = parseInt($("#passlength").val(), 10);
    var password = "";
    while (length--) {
      password += charset[random(0, charset.length - 1)];
    }
    return password;
  }
  function getNewPassword() {
    var pass = generatePassword("AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789!?#@*&.,;:+-=()[]_");
    $('#password').val(pass);
  }
});

HTML

Length: <input id="passlength"/><br>
Password: <input id="password"/><br>
<button class="btn btn-info" id="generate">Generate Password</button>

更新

重新设计并初步设计了您的初始示例,没有什么特别的。 http://jsbin.com/odosoy/97/edit以及更换密码的密码:http://jsbin.com/odosoy/125/edit

希望它有所帮助。

答案 2 :(得分:1)

看看这个:

function gen_random(len){
    var charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    var tempChar = charset.split('');
    for (var i = 0; i < len; ++i) {
        password += tempChar[Math.floor(Math.random() * (26+26+10)) + 1];           
    }
    return password;    
}

答案 3 :(得分:1)

在生成密码之前,尝试添加新的文本字段并获取其值。

var passwordLength = $('#maxLength').val(); $('#password').val(generatePassword(passwordLength, "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789!?#@*&.,;:+-=()[]_"));

你可以看到一个快速的&amp;脏兮兮的小提琴:http://jsfiddle.net/nininho/pG5A7/1/

答案 4 :(得分:0)

尝试这样的事情: -

Math.random().toString(36).substring(7);

答案 5 :(得分:0)

在JS中生成密码的最佳方法是使用诸如https://github.com/bermi/password-generator

之类的库

这将为您生成一个可自定义长度的密码,甚至可以令人难忘。

在提供的链接上还有几个例子。