Решения от подписчиков - JavaScript задача #5

Дмитрий Иванников
function generatePassword(length) {
let possible = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-=<>?';
let randomNumbers = new Uint8Array(length);
window.crypto.getRandomValues(randomNumbers);
let result = Array.from(randomNumbers)
.map(num => possible.charAt(num % possible.length))
.join('');
return result;
}
alert(generatePassword(10)) // Okvns^wfVo
CodePen: https://jsfiddle.net/58dqa3tp
Danill14301
function genPass(len) {
let symbols = ['~','1','4',')','2','(','7','O', 'p', ';', ']', '[', '"','8','9','q','w','e','r','s','t','y','h','!', '{', '@', '#', 'F', 'W', '$', '/', '&', '?', 'C', 'z', '#', '-', '=', '+', '_', '№', 'Ж', 'В', 'x', 'ы', 'ф','й','щ','ш','ъ','э','п','т','б','ю','ь','л','д','к','|'];
let pass = [], date,i = 0;
let interval = setInterval(() => {
pass[pass.length] = symbols[new Date().getSeconds() + Number(String(new Date().getMilliseconds()).split('')[0])];
i++;
if(i == len) {
clearInterval(interval);
gen.innerHTML = 'Generate password';
alert(pass.join(''));
}
},150);
}
gen.addEventListener('click', ()=>{gen.innerHTML = 'Generating...';genPass(6)});