如何调整随机密码的长度

How to adjust the length of random password?

本文关键字:密码 随机 何调整 调整      更新时间:2023-09-26

早上好,

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

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/

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

就这样: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

希望能有所帮助。

看看这个:

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;    
}

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

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

你可以看到一个快速&脏小提琴在这里:http://jsfiddle.net/nininho/pG5A7/1/

试试这样的东西:-

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

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

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

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