Генератор паролей на JavaScript

В данной записи я выкладываю код на JavaScript, который реализует генерацию случайных паролей.

Если вдруг у вас стоит задача сделать генерацию паролей, то это вполне годное готовое решение, которое можно очень легко переделать под любые нужды и задачи.

Оцените рабочий пример в демке и посмотрите код с решением данного примера.

Demo

Укажите какие символы включать в пароль:

  • Цифры
  • Английский строчные буквы
  • Английский заглавные буквы
  • Спецсимволы

Количество символов в пароле:

Сгенерированный пароль:

Код

В демонстрации я использовал следующий HTML

<p>Какие символы включать в пароль:</p>
<ul class="password__generate">
	<li><input id="arr_num" type="checkbox" /> Цифры</li>
	<li><input id="arr_en" type="checkbox" /> Английский строчные буквы</li>
	<li><input id="arr_EN" type="checkbox" /> Английский заглавные буквы</li>
	<li><input id="arr_symb" type="checkbox" /> Спецсимволы</li>
</ul>
<p>Количество символов в пароле: <input id="passLenght" type="number" step="1" min="4" max="20" value="7" /></p>
<p>Сгенерированный пароль: <span id="result"></span></p>
<p><button id="pass_start">Сгенерировать пароль</button></p>

А вот код JS:

let arr_num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let arr_en = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
let arr_EN = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
let arr_symb = ['!', '@', '#', '$', '%', '?', '-', '+', '=', '~'];

const compareRandom = ( ) => Math.random() - 0.5;

const randomInteger = ( min, max ) => Math.round(min - 0.5 + Math.random() * (max - min + 1));

function generatePassword() {
    let arr = [];
    if (document.querySelector('#arr_num').checked) arr = arr.concat(arr_num);
    if (document.querySelector('#arr_en').checked) arr = arr.concat(arr_en);
    if (document.querySelector('#arr_EN').checked) arr = arr.concat(arr_EN);
    if (document.querySelector('#arr_symb').checked) arr = arr.concat(arr_symb);

    arr.sort(compareRandom);

    let password = '';
    let passLenght = document.querySelector('#passLenght').value;

    for (let i = 0; i < passLenght; i++) {
        password += arr[randomInteger(0, arr.length - 1)];
    }

    document.querySelector('#result').textContent = password;
}

document.querySelector('#pass_start').addEventListener('click', generatePassword);

Обратите внимание, что в числовом массиве отсутствует 0, а в массивах с алфавитом нет буквы O, это сделано намеренно, из за того что может быть путаница с этими символами, так как буква 'O' очень похожа на цифру '0'.

Данный js-код как и само решение можно легко подправить под любые нужды и задачи. Для наглядности я добавил настройки с разными параметрами для пароля, но думаю что не будет особых проблем их убрать.

Но если есть вопросы - не стесняйтесь задавать их в комментариях.

Генератор кнопок соцсетей
Кнопки социальных сетей Выберите нужные вам кнопки социальных сетей, установите в настройках их внешний вид и получите код HTML и CSS, полностью готовый для вставки на вашем сайте.
Комментарии 0

*** чтобы писать комментарии.