2

早上好,

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

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/

4

6 回答 6

3

而不是12在调用generatePassworduse parseInt($('#len').val(), 10), wherelen将是输入元素的 id。

于 2013-08-25T12:14:52.700 回答
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

希望能帮助到你。

于 2013-08-25T12:13:28.593 回答
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;    
}
于 2013-08-25T12:18:12.740 回答
1

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

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

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

于 2013-08-25T12:21:07.613 回答
0

尝试这样的事情: -

Math.random().toString(36).substring(7);
于 2013-08-25T11:59:06.080 回答
0

在 JS 中生成密码的最好方法是使用一个 lib,例如https://github.com/bermi/password-generator

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

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

于 2013-08-25T12:10:24.057 回答