使用JavaScript生成隨機密碼


使用JavaScript可以做很多事,下面是兩種生成隨機密碼的方式:

第一種比較簡單:

var m="",i=16;
for(;i>=0;i--){
    m+=String.fromCharCode(Math.floor(Math.random()*94+33));
}
console.log(m);

第二種是我比較喜歡用的:

/**
 * 生成密碼字符串
 * 33~47:!~/
 * 48~57:0~9
 * 58~64::~@
 * 65~90:A~Z
 * 91~96:[~`
 * 97~122:a~z
 * 123~127:{~
 * @param length 長度
 * @param hasNum 是否包含數字 1-包含 0-不包含
 * @param hasChar 是否包含字母 1-包含 0-不包含
 * @param hasSymbol 是否包含其他符號 1-包含 0-不包含
 * @param caseSense 是否大小寫敏感 1-敏感 0-不敏感
 * @param lowerCase 是否只需要小寫,只有當hasChar為0且caseSense為1時起作用 1-全部小寫 0-全部大寫
 */
function genEnCode(length, hasNum, hasChar, hasSymbol, caseSense, lowerCase) {
    var m = "";
    if (hasNum == "0" && hasChar == "0" && hasSymbol == "0") return m;
    for (var i = length; i >= 0; i--) {
        var num = Math.floor((Math.random() * 94) + 33);
        if (
            (
                (hasNum == "0") && ((num >= 48) && (num <= 57))
            ) || (
                (hasChar == "0") && ((
                    (num >= 65) && (num <= 90)
                ) || (
                    (num >= 97) && (num <= 122)
                ))
            ) || (
                (hasSymbol == "0") && ((
                    (num >= 33) && (num <= 47)
                ) || (
                    (num >= 58) && (num <= 64)
                ) || (
                    (num >= 91) && (num <= 96)
                ) || (
                    (num >= 123) && (num <= 127)
                ))
            )
        ) {
            i++;
            continue;
        }
        m += String.fromCharCode(num);
    }
    if(caseSense == "0"){
        m = (lowerCase == "0")?m.toUpperCase():m.toLowerCase();
    }
    return m;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM