Генератор уникальных паролей
Просим ChatGPT написать простые сервисы, которые могут пригодиться в работе и смотрим, что в итоге получится. Запросы пишем максимально простым и понятным языком.
Запрос третий:
Напиши, код сервиса, который позволяет сгенерировать уникальный пароль. Сервис должен позволять выбрать длину пароля (минимум 6 символов и максимум 20 символов), а также позволить выбрать с помощью галочек использовать ли помимо строчных букв, заглавных буквы и цифры и спецсимволы. Для написания кода используй html и php. Пользователь выбирает длину пароля, галочками отмечает использование заглавных букв, цифр и спецсимволов. После чего нажимает кнопку "сгенерировать". По итогу должен получить 10 разных вариантов паролей. Для оформления используй минималистичный понятный интерфейс на основе bootstrap 5. Внизу страницы добавь текстовый блок, в котором укажи, что данный код сгенерирован ChatGPT, укажи версию и свои параметры.
Вы можете сразу перейти по ссылке и посмотреть результат.
Размышления сети:
The user wants a service to generate unique passwords, where they can select the length (between 6 and 20 characters) and choose whether to include uppercase letters, digits, and special characters through checkboxes. After making those selections, the user clicks a "generate" button and receives 10 unique password options. I'll design this using HTML and PHP, and for better UI, I'll use Bootstrap 5 with a minimalist, clear interface. I also need to add a text block at the bottom to acknowledge ChatGPT's contribution.
I need to design a password generator that allows users to select the length (6 to 20 characters) and check boxes for including uppercase letters, digits, or special characters. The HTML form should have inputs for length, checkboxes for those options, and a "Generate" button. I'll use PHP to process the input, validate it, and then generate 10 different passwords. The page will have a simple Bootstrap 5 design, and at the bottom, I'll note that the code was generated by ChatGPT.
I need to design a password generator that allows users to select the length (6 to 20 characters) and check boxes for including uppercase letters, digits, or special characters. The HTML form should have inputs for length, checkboxes for those options, and a "Generate" button. I'll use PHP to process the input, validate it, and then generate 10 different passwords. The page will have a simple Bootstrap 5 design, and at the bottom, I'll note that the code was generated by ChatGPT.
Итоговый скрипт:
<?php
// Функция для генерации одного пароля с заданными параметрами
function generatePassword($length, $useUppercase, $useDigits, $useSpecial) {
$lowercase = 'abcdefghijklmnopqrstuvwxyz';
$uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$digits = '0123456789';
$special = '!@#$%^&*()_-=+;:,.?';
// Всегда используем строчные буквы
$characters = $lowercase;
if ($useUppercase) {
$characters .= $uppercase;
}
if ($useDigits) {
$characters .= $digits;
}
if ($useSpecial) {
$characters .= $special;
}
$password = '';
$maxIndex = strlen($characters) - 1;
for ($i = 0; $i < $length; $i++) {
// Используем random_int для криптографической стойкости
$password .= $characters[random_int(0, $maxIndex)];
}
return $password;
}
// Инициализация переменных для вывода результата
$passwords = [];
$error = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$length = isset($_POST['length']) ? intval($_POST['length']) : 6;
$useUppercase = isset($_POST['use_uppercase']);
$useDigits = isset($_POST['use_digits']);
$useSpecial = isset($_POST['use_special']);
if ($length < 6 || $length > 20) {
$error = 'Длина пароля должна быть от 6 до 20 символов.';
} else {
$generated = [];
// Генерируем 10 уникальных вариантов пароля
while (count($generated) < 10) {
$pwd = generatePassword($length, $useUppercase, $useDigits, $useSpecial);
if (!in_array($pwd, $generated)) {
$generated[] = $pwd;
}
}
$passwords = $generated;
}
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Генератор паролей</title>
<!-- Подключение Bootstrap 5 -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-5">
<h1 class="mb-4">Генератор уникальных паролей</h1>
<?php if ($error): ?>
<div class="alert alert-danger"><?= htmlspecialchars($error) ?></div>
<?php endif; ?>
<form method="post">
<div class="mb-3">
<label for="length" class="form-label">Длина пароля (6-20):</label>
<input type="number" class="form-control" id="length" name="length" value="<?= isset($_POST['length']) ? intval($_POST['length']) : 6 ?>" min="6" max="20" required>
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="use_uppercase" name="use_uppercase" <?= isset($_POST['use_uppercase']) ? 'checked' : '' ?>>
<label class="form-check-label" for="use_uppercase">Использовать заглавные буквы</label>
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="use_digits" name="use_digits" <?= isset($_POST['use_digits']) ? 'checked' : '' ?>>
<label class="form-check-label" for="use_digits">Использовать цифры</label>
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="use_special" name="use_special" <?= isset($_POST['use_special']) ? 'checked' : '' ?>>
<label class="form-check-label" for="use_special">Использовать спецсимволы</label>
</div>
<button type="submit" class="btn btn-primary">Сгенерировать</button>
</form>
<?php if (!empty($passwords)): ?>
<h2 class="mt-5">Сгенерированные пароли:</h2>
<ul class="list-group">
<?php foreach ($passwords as $pwd): ?>
<li class="list-group-item"><?= htmlspecialchars($pwd) ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<footer class="mt-5">
<p class="text-muted">Данный код сгенерирован ChatGPT, версия: 4.0, параметры: HTML, PHP, Bootstrap 5.</p>
</footer>
</div>
</body>
</html>
Объяснение кода:
- PHP-обработка формы:
После отправки формы методом POST проверяются введённые данные: длина пароля (от 6 до 20 символов) и выбранные галочки для использования заглавных букв, цифр и спецсимволов. Если данные корректны, генерируется 10 уникальных вариантов паролей с помощью функции generatePassword. - Функция генерации пароля:
Функция собирает строку с набором символов в зависимости от выбранных опций и случайным образом выбирает символы для формирования пароля заданной длины. Для случайного выбора используется функция random_int, которая обеспечивает криптографическую стойкость. - Интерфейс на Bootstrap 5:
Для оформления используются классы Bootstrap 5, что позволяет создать минималистичный и понятный интерфейс. - Нижний текстовый блок:
В футере страницы присутствует текст, указывающий, что данный код сгенерирован ChatGPT, с указанием версии и используемых параметров.
Данный код можно адаптировать под свои нужды, а также расширять функционал по необходимости.