/
NikolayIvkin
/
java_course1
Обзор
Документация
Войти
/
NikolayIvkin
/
java_course1
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/PassGenerate.java
59 строк
2 KB
alex89
Initial commit.
20 сен 2024, 07:51
20 сен 2024, 07:51
d6e240c
Код
Авторство
О чём код?
import java.util.Scanner; public class PassGenerate { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n; String upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; String lowerCase = "abcdefghijklmnopqrstuvwxyz"; String digits = "0123456789"; String symbols = "*-_"; String password; while (true) { System.out.print("Введите длину пароля: "); n = sc.nextInt(); if (n >= 8) { break; } else { System.out.println("Пароль с " + n + " количеством символов небезопасен"); } } while (true) { StringBuilder pass = new StringBuilder(); generatePassword(n, upperCase, lowerCase, digits, symbols, pass); password = pass.toString(); if (password.matches(".*[A-Z].*") && password.matches(".*[a-z].*") && password.matches(".*[0-9].*") && password.matches(".*[_\\*-].*")) { break; } } System.out.println("Сгенерированный пароль: " + password); } public static void generatePassword(int n, String upperCase, String lowerCase, String digits, String symbols, StringBuilder pass) { for (int i = 0; i < n; i++) { int index = (int) (Math.random() * 4); if (index == 0) { int indexInMas = (int) (Math.random() * upperCase.length()); pass.append(upperCase.charAt(indexInMas)); } if (index == 1) { int indexInMas = (int) (Math.random() * lowerCase.length()); pass.append(lowerCase.charAt(indexInMas)); } if (index == 2) { int indexInMas = (int) (Math.random() * digits.length()); pass.append(digits.charAt(indexInMas)); } if (index == 3) { int indexInMas = (int) (Math.random() * symbols.length()); pass.append(symbols.charAt(indexInMas)); } } } }