По умолчанию в Java нет утилиты, которая создает надежный длинный случайный пароль. Здесь мы создали подробное руководство о том, как создать надежный случайный пароль, используя java.security.SecureRandom API.
- Безопасность Java — Генерация безопасного случайного пароля для хорошего
- Как создать безопасную случайную буквенно-цифровую строку в Java?
- Генератор паролей в исходном коде Java
- Java генерирует случайный пароль со специальными символами
Мы будем использовать ASCII- таблицу для получения специальных символов по десятичному значению в Java. Посмотрите на карту ниже Decimal Value а также Characters ,
Вот поток:
- Создать публичный метод
CrunchifyRandomPasswordGenerator()в котором мы получим десятичные значения ASCII в 3 различных циклах. - ArrayList будет заполнен десятичными значениями ASCII
crunchifyGetRandom()получит случайный символ из списка выше и получит связанный с ним символ .- У нас есть 2 цикла в методе main ()
- Внешний цикл для печати, сколько паролей
- Внутренний цикл для печати количества символов для надежного пароля
- Вот и все. Просто запустите программу ниже и все готово.
Java программа:
CrunchifyRandomPasswordGenerator.java
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
пакет crunchify. ком . учебник ;
импорт Java . безопасность. SecureRandom ;
импорт Java . Util. ArrayList ;
импорт Java . Util. Коллекции ;
/ **
* @author Crunchify.com
* Лучший способ создать очень безопасный случайный пароль автоматически
*
* /
общественности учебный класс CrunchifyRandomPasswordGenerator {
// SecureRandom () создает безопасный генератор случайных чисел (RNG), реализующий алгоритм случайных чисел по умолчанию.
частный SecureRandom crunchifyRandomNo знак равно новый SecureRandom ( ) ;
частный ArrayList < Object > crunchifyValueObj ;
общественности статический недействительным main ( Строка [ ] аргументы ) {
CrunchifyRandomPasswordGenerator passwordGenerator знак равно новый CrunchifyRandomPasswordGenerator ( ) ;
log ( «Crunchify Password Generator Utility: / n» ) ;
StringBuilder crunchifyBuffer знак равно новый StringBuilder ( ) ;
// напечатаем всего 8 паролей
за ( int петля знак равно 1 ; петля < = 8 ; цикл ++ ) {
// Длина пароля должна быть 23 символа
за ( int длина знак равно 0 ; длина < 23 ; длина ++ ) {
crunchifyBuffer . append ( passwordGenerator . crunchifyGetRandom ( ) ) ;
}
журнал ( цикл , crunchifyBuffer . toString ( ) ) ;
crunchifyBuffer . setLength ( 0 ) ;
}
}
// Просто инициализируем ArrayList crunchifyValueObj и добавляем десятичные значения ASCII
общественности CrunchifyRandomPasswordGenerator ( ) {
crunchifyValueObj знак равно новый ArrayList < > ( ) ;
// Добавляем десятичное значение ASCII между 33 и 53
за ( int я знак равно 33 ; я < 53 ; я ++ ) {
crunchifyValueObj . добавить ( ( символ ) я ) ;
}
// Добавляем десятичное значение ASCII между 54 и 85
за ( int я знак равно 54 ; я < 85 ; я ++ ) {
crunchifyValueObj . добавить ( ( символ ) я ) ;
}
// Добавляем десятичное значение ASCII между 86 и 128
за ( int я знак равно 86 ; я < 127 ; я ++ ) {
crunchifyValueObj . добавить ( ( символ ) я ) ;
}
crunchifyValueObj . добавить ( ( символ ) 64 ) ;
// rotate () поворачивает элементы в указанном списке на указанное расстояние. Это создаст надежный пароль
Коллекции . повернуть ( crunchifyValueObj , 5 ) ;
}
// Получить значение Char из добавленных выше десятичных значений
// Включить ведение журнала ниже, если вы хотите отладить
общественности голец crunchifyGetRandom ( ) {
голец crunchifyChar знак равно ( символ ) это. crunchifyValueObj . get ( crunchifyRandomNo . nextInt ( this . crunchifyValueObj . size ( ) ) ) ;
// log (String.valueOf (crunchifyChar));
вернуть crunchifyChar ;
}
// Простой лог утилита
частный статический недействительным log ( Строка строка ) {
Система. вне. println ( строка ) ;
}
// Простой лог утилита
частный статический недействительным log ( int считать , строка пароль ) {
Система. вне. println ( «Пример пароля» + подсчитывать + : + пароль ) ;
}
}
|
Выход Eclipse Console:
|
1
2
3
4
5
6
7
8
9
10
|
Crunchify Password Generator Utility:
Пример пароля 1 : Б ! ) m % * I > ~ 'p` ^' Pm0q ; 6063
Пример пароля 2 : rf0EpI [ VW8AciS_nVY '?] BT
Пример пароля 3: bRNh2Y_FR * dxma2B% 9q6ESM
Пример пароля 4:: i (@ = {h ~ CVi # 269fJj ^ `fN =
Пример пароля 5 🙂 | S2,) ' 3ah ! NzOx } G % Tp ~ [ K
Пример пароля 6 : g [ jy — 8 #s! 1I4 / 2h;% @ = [% `q
Пример пароля 7 : (6 (Е] 4а Ь (а;!) ED4JofVc8 `
Пример пароля 8 : #Jzm = # {& J {[WRW + HYirLOlA
|
Попытайтесь понять, как вы извлекаете Char из десятичного значения здесь:
|
1
|
голец crunchifyChar знак равно ( символ ) это. crunchifyValueObj . get ( crunchifyRandomNo . nextInt ( this . crunchifyValueObj . size ( ) ) ) ;
|
0.00 (0%) 0 votes










