Генератор паролей на JavaScript
Доброго времени суток! Сегодня мы с Вами создадим простой генератор паролей на JavaScript.
Пароли, которые будут создаваться данным генератором подойдут в качестве хороших паролей для регистрации
на различных сервисах.
Итак, рассмотрим код:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Генератор Паролей</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-5">
<h1 class="mb-4">Генератор Паролей</h1>
<div class="form-group">
<label for="length">Длина пароля:</label>
<input type="number" class="form-control" id="length" value="12" min="6" max="50">
</div>
<div class="form-group">
<div class="form-check">
<input type="checkbox" class="form-check-input" id="lowercase" checked>
<label class="form-check-label" for="lowercase">Включить строчные буквы</label>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="uppercase" checked>
<label class="form-check-label" for="uppercase">Включить заглавные буквы</label>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="numbers" checked>
<label class="form-check-label" for="numbers">Включить цифры</label>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="symbols" checked>
<label class="form-check-label" for="symbols">Включить символы</label>
</div>
</div>
<button type="button" class="btn btn-primary mr-2" onclick="displayGeneratedPassword()">Сгенерировать Пароль</button>
<button type="button" class="btn btn-secondary" onclick="copyToClipboard()">Скопировать в буфер обмена</button>
<p class="mt-3" id="password"></p>
</div>
<script>
function generatePassword(length, lowercase, uppercase, numbers, symbols) {
const charset = [];
if (lowercase) charset.push("abcdefghijklmnopqrstuvwxyz");
if (uppercase) charset.push("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
if (numbers) charset.push("0123456789");
if (symbols) charset.push("!@#$%^&*()-_=+");
const charsetString = charset.join('');
let password = "";
for (let i = 0; i < length; i++) {
const randomIndex = Math.floor(Math.random() * charsetString.length);
password += charsetString[randomIndex];
}
return password;
}
function displayGeneratedPassword() {
const length = parseInt(document.getElementById("length").value);
const lowercase = document.getElementById("lowercase").checked;
const uppercase = document.getElementById("uppercase").checked;
const numbers = document.getElementById("numbers").checked;
const symbols = document.getElementById("symbols").checked;
const password = generatePassword(length, lowercase, uppercase, numbers, symbols);
const passwordField = document.getElementById("password");
passwordField.textContent = password;
passwordField.style.color = "#000"; // пароль должен быть виден на фоне страницы
}
function copyToClipboard() {
const passwordField = document.getElementById("password");
const passwordText = passwordField.textContent;
// Создаем временный элемент ввода
const tempInput = document.createElement("input");
tempInput.value = passwordText;
document.body.appendChild(tempInput);
// Выбираем весть текст в этом элементе
tempInput.select();
tempInput.setSelectionRange(0, 99999); // Для мобильных устройств
// Копируем текст в буфер обмена
document.execCommand("copy");
// Удаляем временный элемент ввода
document.body.removeChild(tempInput);
alert("Пароль скопирован в буфер обмена!");
}
</script>
</body>
</html>
Вот такой генератор паролей мы с Вами рассмотрели в данной статье. А для тех, кто заинтересовался возможностями
языка JavaScript, у меня есть отличный видеокурс «Программирование на JavaScript с Нуля до Гуру 2.0″, который научит Вас программировать на одном из самых востребованных языков программирования в мире — языке JavaScript.