Это простой онлайн-генератор случайных паролей, который работает прямо в браузере — никакие данные не уходят на сервер, всё генерится у вас на устройстве.
Вы можете настроить длину пароля (от 4 до 100 символов) и выбрать, из каких наборов символов он будет состоять:
!@#$%^&*()_+-=[]{} и другие;
Генератор не использует внешние библиотеки и не отправляет пароли никуда — вы полностью контролируете процесс. Отлично подходит для создания надёжных паролей локально, особенно если вы настраиваете IoT-устройства, серверы или просто хотите избежать повторяющихся комбинаций вроде 123456 или qwerty.
Код полностью открыт — вы можете взять его, встроить в свой сайт или модифицировать под свои задачи (например, добавить ограничение на уникальность или исключить похожие символы вроде 0/O и l/1/I).
<div class="form-group">
<label for="length">Длина пароля:</label>
<input type="number" id="length" min="4" max="100" value="8">
</div>
<div class="form-group">
<label><input type="checkbox" id="digits" checked> Цифры (0–9)</label>
</div>
<div class="form-group">
<label><input type="checkbox" id="upperLat" checked> ПРОПИСНЫЕ ЛАТИНИЦА (A–Z)</label>
</div>
<div class="form-group">
<label><input type="checkbox" id="lowerLat" checked> строчные латиница (a–z)</label>
</div>
<div class="form-group">
<label><input type="checkbox" id="upperCyr"> ПРОПИСНЫЕ КИРИЛЛИЦА (А–Я)</label>
</div>
<div class="form-group">
<label><input type="checkbox" id="lowerCyr"> строчные кириллица (а–я)</label>
</div>
<div class="form-group">
<label><input type="checkbox" id="special"> Спец. символы (!@#$%^&* и др.)</label>
</div>
<div class="form-group">
<label><input type="checkbox" id="extra"> Доп. символы (например: ~`|\\{}[]:;"'<>?,./)</label>
</div>
<button onclick="generatePassword()">Сгенерировать пароль</button>
<div id="result">Ваш пароль появится здесь</div>
function generatePassword() {
const length = parseInt(document.getElementById('length').value) || 8;
let charset = '';
if (document.getElementById('digits').checked) charset += '0123456789';
if (document.getElementById('upperLat').checked) charset += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
if (document.getElementById('lowerLat').checked) charset += 'abcdefghijklmnopqrstuvwxyz';
if (document.getElementById('upperCyr').checked) charset += 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
if (document.getElementById('lowerCyr').checked) charset += 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
if (document.getElementById('special').checked) charset += '!@#$%^&*()_+-=[]{}|;:,.<>?';
if (document.getElementById('extra').checked) charset += '`~\\/"\'';
if (charset === '') {
document.getElementById('result').textContent = 'Выберите хотя бы один тип символов!';
return;
}
let password = '';
for (let i = 0; i < length; i++) {
const randomIndex = Math.floor(Math.random() * charset.length);
password += charset[randomIndex];
}
document.getElementById('result').textContent = password;
}
Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!