Skip to content

Instantly share code, notes, and snippets.

@adrianhorning08
Created May 15, 2018 22:38
Show Gist options
  • Save adrianhorning08/ac700de1b97723e17671d8cb894b3fe8 to your computer and use it in GitHub Desktop.
Save adrianhorning08/ac700de1b97723e17671d8cb894b3fe8 to your computer and use it in GitHub Desktop.
function genPassword(n, filter) {
const variables = {
uppercase:'ABCDEFGHIJKLMNOPQRSTUV',
lowercase: 'abcdefghijklmnopqrstuvwxyz',
nums: '0123456789',
symbols: '!@#$%^&*?<>'
}
const filters = [];
let password = '';
for (key in filter) {
if (filter[key]) {
filters.push(key);
}
}
filters.forEach(el => {
let randomNum = Math.floor(Math.random() * variables[el].length);
password += variables[el][randomNum];
})
while (password.length < n) {
let randomFilter = Math.floor(Math.random() * filters.length);
let filter = filters[randomFilter];
let randomNum = Math.floor(Math.random() * variables[filter].length);
password += variables[filter][randomNum];
}
return password;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment