/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/javascript/js-501-103-001/main.js
49 строк
2 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
/** * Генератор безопасных паролей * @param {number} length - Длина пароля * @param {boolean} useDigits - Включать ли цифры * @param {boolean} useSymbols - Включать ли специальные символы * @returns {string} Сгенерированный пароль */ function generatePassword(length = 12, useDigits = true, useSymbols = true) { const lowercaseChars = 'abcdefghijklmnopqrstuvwxyz'; const uppercaseChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; const digitChars = '0123456789'; const symbolChars = '!@#$%^&*()_+-=[]{}|;:,.<>?'; let charPool = lowercaseChars + uppercaseChars; if (useDigits) { charPool += digitChars; } if (useSymbols) { charPool += symbolChars; } let password = ''; // Гарантируем наличие хотя бы одного символа каждого типа при включении опций if (useDigits && length > 0) { password += digitChars[Math.floor(Math.random() * digitChars.length)]; length--; } if (useSymbols && length > 0) { password += symbolChars[Math.floor(Math.random() * symbolChars.length)]; length--; } // Заполняем оставшуюся длину случайными символами из общего пула for (let i = 0; i < length; i++) { const randomIndex = Math.floor(Math.random() * charPool.length); password += charPool[randomIndex]; } // Перемешиваем строку, чтобы гарантированный символ не всегда был первым return password.split('').sort(() => 0.5 - Math.random()).join(''); } // Пример использования const myPassword = generatePassword(16, true, true); console.log(`Сгенерированный пароль: ${myPassword}`);