Генератор случайных паролей на JavaScript
Разработчик под ником Foolish Developer опубликовал пошаговое руководство по созданию генератора надежных и уникальных паролей с помощью JavaScript, HTML и CSS. Пароли генерируются на основе специальных символов, букв и цифр.
Структура генератора
Ниже представлен итоговый вид генератора. Он состоит из фона, маленькой рамки с текстом, поля, а также кнопок для создания и копирования пароля.
Шаг 1: создание поля с помощью HTML- и CSS-кода
Код ниже создает на веб-странице поле. Автор задал фиолетовый цвет фона веб-страницы, а цветом фона рамки указал белый.
<div class="box"> </div>
* {
margin: 0;
padding: 0;
user-select: none;
box-sizing: border-box;
}
body {
background-color: #8d0cf7;
justify-content: center;
align-items: center;
display: flex;
min-height: 100vh;
}
.box{
background-color: white;
padding-top: 30px;
padding: 30px;
}
Шаг 2: добавление заголовка в рамке
Заголовок создается следующим кодом:
<h2>Random Password Generater</h2>
.box h2{
margin-bottom: 40px;
text-align: center;
font-size: 26px;
color: #015a96;
font-family: sans-serif;
}
Шаг 3: создание поля для генерации кода
В созданном поле, размером 40х500px, будут отображаться сгенерированные пароли. С помощью user-select: none автор ограничил пользователям действия с полем.
<input type="text" name="" placeholder="Create password" id="password" readonly>
input {
padding: 20px;
user-select: none;
height: 50px;
width: 400px;
border-radius: 6px;
border: none;
border: 2px solid #8d0cf7;
outline: none;
font-size: 22px;
}
input::placeholder{
font-size: 23px;
}
Шаг 4: создание кнопок для генерации и копирования пароля
Автор создал кнопки с помощью кода CSS, размер каждой — 50x155px.
<table> <th><div id="button" class="btn1"onclick="genPassword()">Generate</div></th> <th><a id="button" class="btn2" onclick="copyPassword()">Copy</a></th> </table>
#button {
font-family: sans-serif;
font-size: 15px;
margin-top: 40px;
border: 2px solid #7100cf;
width: 155px;
height: 50px;
text-align: center;
background-color: #7100cf;
display: flex;
color: rgb(255, 255, 255);
justify-content: center;
align-items: center;
cursor: pointer;
border-radius: 5px;
}
.btn2{
margin-left: 85px
}
#button:hover {
color: white;
background-color: black;
}
Шаг 5: активация кнопки генерации кода с помощью JavaScript
Для начала нужно установить переменную ID входа (password).
var password=document.getElementById("password");
Затем добавить все символы, числа и алфавиты в var, которые будут использоваться для создания случайных паролей.
С помощью var passwordLength указывается количество символов в будущем пароле.
var chars = "0123456789abcdefghijklmnopqrstuvwxyz!@#$%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var passwordLength = 12; var password = "";
Пароли будут генерироваться с помощью цикла и метода Math.random ().
for (var i = 0; i <= passwordLength; i++) {
var randomNumber = Math.floor(Math.random() * chars.length);
password += chars.substring(randomNumber, randomNumber +1);
}
Далее пароль связывается с полем ввода.
document.getElementById("password").value = password;
Шаг 6: Активация кнопки копирования пароля
С помощью кода ниже все, что написано в поле ввода, можно будет скопировать запрограммированной кнопкой.
function copyPassword() {
var copyText = document.getElementById("password");
copyText.select();
document.execCommand("copy");
}
Шаг 7: Окончательный JavaScript-код
var password=document.getElementById("password");
function genPassword() {
var chars = "0123456789abcdefghijklmnopqrstuvwxyz!@#$%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var passwordLength = 12;
var password = "";
for (var i = 0; i <= passwordLength; i++) {
var randomNumber = Math.floor(Math.random() * chars.length);
password += chars.substring(randomNumber, randomNumber +1);
}
document.getElementById("password").value = password;
}
function copyPassword() {
var copyText = document.getElementById("password");
copyText.select();
document.execCommand("copy");
}
Исходный код генератора случайных чисел доступен по ссылке. Для наглядности автор записал руководство по реализации проекта:


Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: