import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Random;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 1. Задаем два вопроса пользователю
System.out.print("Сколько паролей (пользователей) нужно создать? ");
int count = scanner.nextInt();
System.out.print("Какой длины будут пароли? ");
int length = scanner.nextInt();
// Файл, куда будем записывать результат (создастся в папке с проектом)
File outputFile = new File("passwords.txt");
try {
PrintWriter writer = new PrintWriter(outputFile);
writer.println("=== СПИСОК ПОЛЬЗОВАТЕЛЕЙ И ПАРОЛЕЙ ===");
// 2. В цикле вызываем метод генерации пароля для каждого пользователя
for (int i = 1; i <= count; i++) {
String password = generatePassword(length);
String line = "Пользователь_" + i + " | Пароль: " + password;
// Записываем в файл и дублируем в консоль для наглядности
writer.println(line);
System.out.println(line);
}
// 3. Записываем итоговую статистику в конец файла
writer.println("--------------------------------------");
writer.println("Итого создано пользователей: " + count);
writer.println("Итого сгенерировано паролей: " + count);
writer.println("Длина каждого пароля: " + length + " симв.");
writer.println("======================================");
writer.close(); // Обязательно закрываем файл, чтобы данные сохранились
System.out.println("\nГотово! Все данные успешно записаны в файл passwords.txt");
} catch (FileNotFoundException e) {
System.out.println("Ошибка при создании файла!");
}
scanner.close();
}
// Отдельный метод для генерации одного пароля заданной длины
public static String generatePassword(int length) {
// Все символы, из которых может состоять пароль
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%&*";
Random random = new Random();
String password = "";
for (int i = 0; i < length; i++) {
// Выбираем случайный номер символа от 0 до длины строки chars
int randomIndex = random.nextInt(chars.length());
// Достаем символ под этим номером и прибавляем к паролю
password += chars.charAt(randomIndex);
}
return password; // Возвращаем готовый пароль обратно в main
}
}