Skip to content

Instantly share code, notes, and snippets.

@kiidax
Last active August 29, 2015 14:03
Show Gist options
  • Save kiidax/00bed6dbfe011a4059a9 to your computer and use it in GitHub Desktop.
Save kiidax/00bed6dbfe011a4059a9 to your computer and use it in GitHub Desktop.
generateRandomPassword
/// @param {number} length
/// @param {boolean} useUpper
/// @param {boolean} useLower
/// @param {boolean} useNumber
/// @return {string} Generated password.
/// Generate password
function generateRandomPassword(length, useUpper, useLower, useNumber, useSymbol, easy) {
if (typeof length === "undefined") length = 12;
if (typeof useUpper === "undefined") useUpper = true;
if (typeof useLower === "undefined") useLower = true;
if (typeof useNumber === "undefined") useNumber = true;
if (typeof useSymbol === "undefined") useSymbol = true;
if (typeof easy === "undefined") easy = true;
if (!(useUpper || useLower || useNumber || useSymbol)) throw "Set true to at least one of useUpper, useLower, useNumber and useSymbol.";
var uppers = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var lowers = uppers.toLowerCase();
var numbers = '0123456789';
var symbols = '!"#$%^&*()_=-+<>,./?:;\'@\\|{}[]`~';
var chars = '';
if (useUpper) chars += uppers;
if (useLower) chars += lowers;
if (useNumber) chars += numbers;
if (useSymbol) {
if (easy) chars += chars + chars;
chars += symbols;
}
var password = '';
for (var i = 0; i < length; i++) {
password += chars[Math.floor((Math.random() * chars.length))];
}
return password;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment