Das Ausdenken von Passwörtern ist prinzipiell eine schlechte Idee; besser ist es, wenn diese automatisch generiert werden. Ein solcher Generator kann problemlos selbst geschrieben werden. In diesem Fall in Java:
public class PasswordGenerator { private static final SecureRandom secureRandom = new SecureRandom(); private static final String alpha = "abcdefghijklmnopqrstuvwxyz"; private static final String alphaCaps = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private static final String numeric = "0123456789"; private static final String specials = "!§$%&/()=?.:,;+*#<>"; public enum CharacterSet { Alpha, AlphaCaps, AlphaBoth, Numeric, AlphaNumeric, Special, All } private static String getCharacters(CharacterSet characterSet) { switch (characterSet) { case Alpha: return alpha; case AlphaCaps: return alphaCaps; case AlphaBoth: return alpha + alphaCaps; case Numeric: return numeric; case AlphaNumeric: return alpha + alphaCaps + numeric; case Special: return specials; case All: return alpha + alphaCaps + numeric + specials; } return alpha; } public static String generatePassword(int length, CharacterSet characterSet) { String characters = getCharacters(characterSet); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < length; i++) { stringBuilder.append(characters.charAt(secureRandom.nextInt(characters.length()))); } return stringBuilder.toString(); } }
Der Generator funktioniert im Groben so, das aus einem bestimmten Zeichenvorrat zufällig Zeichen gewählt und aus diesen das Passwort erzeugt wird. Als Zufallsquelle kommt nicht die gebräuchliche Klasse Random zum Einsatz, sondern die Klasse SecureRandom. Diese von Random abgeleitete Klasse erzeugt aus kryptografischer Sicht starke Zufallszahlen, was die Sicherheit des Generators erhöht. Als kleines Gimmick lässt sich der gewünschte Zeichensatz, aus welchem das Passwort generiert werden soll, über einen Enum auswählen:
String s = PasswordGenerator.generatePassword(64, PasswordGenerator.CharacterSet.All); System.out.println(s);
Damit würde auf der Konsole ein Passwort mit 64 Zeichen ausgegeben werden, welches den kompletten Zeichenvorrat der Generator-Klasse nutzt.