Найти в Дзене
IT код

Генератор паролей на Java

Всем привет! Сегодня расскажу как можно написать свой генератор паролей любой длины, используя язык программирования Java. Для написания данной программы вам потребуется минимальное знание языка Java. Для начала создадим новый Java проект в IntelliJ IDEA. Если вы новичок и у вас нет IDEA или Java SDK, то есть множество статей в которых рассказано как все это установить и настроить. Вот, например: Как установить JDK и среду разработки IntelliJ IDEA Новый проект PasswordGeneratorTool, в нем будет пока всего лишь один класс - Main, в этом классе будет содержаться весь код программы. Дальше необходимо определиться с требованиям к паролю - это длина пароля и разрешенные символы для генерации. Длину пароля будем задавать сами, а к разрешенным символам как правило относятся: • латинские буквы верхнего и нижнего регистра (a-z, A-Z) • цифры • спец символы, я ограничимся лишь: ! @ _ $ % ^ & * Создадим переменную типа String, она будет хранить все перечисленные символы в виде одной строки: s

Всем привет!

Сегодня расскажу как можно написать свой генератор паролей любой длины, используя язык программирования Java. Для написания данной программы вам потребуется минимальное знание языка Java.

Для начала создадим новый Java проект в IntelliJ IDEA. Если вы новичок и у вас нет IDEA или Java SDK, то есть множество статей в которых рассказано как все это установить и настроить. Вот, например:

Как установить JDK и среду разработки IntelliJ IDEA

Новый проект PasswordGeneratorTool, в нем будет пока всего лишь один класс - Main, в этом классе будет содержаться весь код программы.

Дальше необходимо определиться с требованиям к паролю - это длина пароля и разрешенные символы для генерации. Длину пароля будем задавать сами, а к разрешенным символам как правило относятся:

• латинские буквы верхнего и нижнего регистра (a-z, A-Z)

• цифры

• спец символы, я ограничимся лишь: ! @ _ $ % ^ & *

Создадим переменную типа String, она будет хранить все перечисленные символы в виде одной строки:

static String symbols = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!@$%^&*";

И создадим объект класса static SecureRandom rnd = new SecureRandom(); этот класс предоставляет из себя криптографически сильный генератор случайных чисел. Подробнее о нем можно почитать здесь: https://docs.oracle.com/javase/8/docs/api/java/security/SecureRandom.html

Осталось только написать метод для генерации, который принимает на вход нашу строку и количество символов для пароля. Создадим метод randomPass

public static String randomPass(String symbols, int len){

StringBuilder pass = new StringBuilder(len);

for (int i = 0; i < len; i++) {
pass.append(symbols.charAt(rnd.nextInt(symbols.length())));
}

return pass.toString();
}

Внутри метода StringBuilder sb =new StringBuilder(len) - создается новая пустая строка, в ней "строиться" наш сгенерированный пароль, вместо String используем StringBuilder, это гораздо более удобный класс для формирования строк.

symbols.charAt(rnd.nextInt(symbols.length())) - получаем случайный элемент из строки symbols с помощью SecureRandom() и затем добавляем к нашему паролю через sb.append()

return sb.toString(); - возвращаем сгенерированный пароль

Теперь в методе main вызываем наш метод randomString с любой заданной длиной во втором параметре, и выводим в консоль с помощью System.out.println() полученный пароль.

Можем даже запустить в цикле, чтобы потом выбрать более понравившийся нам пароль:

for (int i = 0; i < 4; i++) { System.out.println(randomPass(symbols, 8)); }

Вывод:

-2

Код полностью:

В следующей статье я расскажу как усовершенствовать написанный генератор паролей.

Вторая часть