随机密码生成

时间:2015-02-24 04:28:39

标签: javascript passwords

我要求生成一个8位随机密码,该密码必须包含字母(A-Z,a-z,0-9)。我使用以下功能来生成我的密码。它一直在为我工作,一旦我注意到一些密码只是字母,例如" WaIoGarQ"。如何改进我的代码,以确保包括字母和数字。

 _makePwd = function () {
            var text = "";
            var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

            for (var i = 0; i < 8; i++) {
                text += possible.charAt(Math.floor(Math.random() * possible.length));
            }
            return text;
        }

非常感谢您的帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

你可以使用这样的东西,我考虑过最多4个数字,你可以在letterUsed变量中改变它。您也可以在数组中添加大写字母

function getAlphaNumeric(){
  var arr =['a','b', 'c', 'd','e','f','g','h','i', 'j', 'k', 'l', 'm', 'n','o','p','q', 'r','s','t','u','v','w','x','y','z'],
 letterUsed=0,numberUsed=0, maxNum =Math.ceil(Math.random()*4), maxLetter = 8-maxNum,i=0, randomStr='';
 for(;i<8;i++){
  if((Math.floor(Math.random()*2) === 0 && numberUsed <maxNum) || letterUsed>=maxLetter ){
      randomStr += Math.floor(Math.random()*10);
      numberUsed++;
  }else{    
    randomStr += arr[Math.floor(Math.random()*26)];
    letterUsed++;
  }
}
return randomStr;
}
getAlphaNumeric();