Du bist nicht angemeldet.

Localhost

Ehemaliger Supporter

  • »Localhost« ist der Autor dieses Themas

Beiträge: 345

Wohnort: 127.0.0.1

  • Private Nachricht senden

1

Freitag, 16. März 2012, 14:53

Zufällige Passwörter generieren

Hi,

hatte mir gerade mal ein Script geschrieben, welches mir 8-stellige, zufällige Passwörter ausgibt... Vielleicht kann's jemand gebrauchen:

Java-Quelltext

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
public static String generatePassword(int length) {
		Collection<Character> characters = new ArrayList<Character>();
		StringBuilder chars = new StringBuilder();
		StringBuilder password = new StringBuilder();
		
		for(int i = 48; i <= 57; i++) { // Zahlen
			characters.add((char)i);
		}
		
		for(int i = 65; i <= 90; i++) { //Großbuchstaben
			characters.add((char)i);
		}	
		
		for(int i = 97; i <= 122; i++) { //Kleinbuchstaben
			characters.add((char)i);
		}	
		
		for (Character c : characters) {
			chars.append(c);
		}
		
		char [] pwChars = chars.toString().toCharArray();
		int characterAmount = characters.size();
		
		for (int i = 1 ; i <= length; i++){
			password.append(pwChars[(int)(Math.random()* ((characterAmount - 1) + 1) + 1) - 1]);
		}
		
		return password.toString();
	}


Localhost
No support via message.

"Der gute Programmierer ist nicht der, der keine Fehler macht, sondern der, der seine Fehler rasch findet und behebt."

Es haben sich bereits 2 registrierte Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

Moritz, Mentos

2

Freitag, 16. März 2012, 19:26

Finde ich schonmal sehr gut.
Vieleicht noch als kleinen "Schönheitstipp":
Du schreibst ja alle Chars in eine ArrayList. Mit .length (oder .size?) kannst du die aktuellen Anzahlen abrufen.
Das heißt, du müsstest die nicht erst in einen String schreiben und dann in ein Char-Array.
Aber nur als kleinen Hinweis - deine Methode klappt schließlich auch :)

Es hat sich bereits 1 registrierter Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

Spectra

3

Samstag, 21. April 2012, 03:16

Quellcode

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
package kreverse.kremu.tools;

/**
 *
 * @author Flav
 */
public class Password {
	public static String generate(int length) {
		StringBuilder password = new StringBuilder();

		for (int i = 0; i < length; i++) {
			switch (rand(0, 2)) {
				case 0: // Zahlen
					password.append(rand(0, 9));
					break;
				case 1: // Großbuchstaben
					password.append((char) rand(65, 90));
					break;
				case 2: // Kleinbuchstaben
					password.append((char) rand(97, 122));
					break;
			}
		}

		return password.toString();
	}

	private static int rand(int min, int max) {
		return (int) (Math.random() * (max - min + 1)) + min;
	}
}


So hätte ich es gemacht.
Tschüß.