forked from harshitbansal373/hacktoberfest2020
-
Notifications
You must be signed in to change notification settings - Fork 0
/
PasswordGenerator.java
44 lines (37 loc) · 1.68 KB
/
PasswordGenerator.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
//Simple password generator to build passwords following the rules of strong passwords.
import java.util.*;
public class PasswordGenerator {
static String generatePassword(int min_length, int max_length){
String smallAlphabet="abcdefghijklmnopqrstuvwxyz";
String largeAlphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String digits="1234567890";
String specialCharacters="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";
String all = smallAlphabet+largeAlphabet+digits+specialCharacters;
Random random = new Random();
int length = random.nextInt(max_length - min_length) + min_length;
StringBuilder password = new StringBuilder();
password.append((smallAlphabet.charAt(random.nextInt(26)))).
append(largeAlphabet.charAt(random.nextInt(26))).
append(digits.charAt(random.nextInt(10))).
append(specialCharacters.charAt(random.nextInt(31)));
int left = length-4;
StringBuilder remainingPassword = new StringBuilder();
while(left-->0){
remainingPassword.append(all.charAt(random.nextInt(93)));
}
password.append(remainingPassword);
ArrayList<Character> list = new ArrayList<>();
for (char c : password.toString().toCharArray())
list.add(c);
Collections.shuffle(list);
StringBuilder finalPassword = new StringBuilder();
for(int i=0;i<list.size();i++){
finalPassword.append(list.get(i));
}
return finalPassword.toString();
}
public static void main(String[] args) {
String password = generatePassword(8,16);
System.out.println("Your password is: "+password);
}
}