diff options
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/util/RandomString.java')
| -rw-r--r-- | src/main/java/org/openslx/imagemaster/util/RandomString.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/imagemaster/util/RandomString.java b/src/main/java/org/openslx/imagemaster/util/RandomString.java new file mode 100644 index 0000000..a0e9419 --- /dev/null +++ b/src/main/java/org/openslx/imagemaster/util/RandomString.java @@ -0,0 +1,30 @@ +package org.openslx.imagemaster.util; + +import java.security.SecureRandom; + +/** + * Generate secure random strings + * @author nils + * + */ +public class RandomString { + private static final String lettersSpecial="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890+-$%&/()=?@"; + private static final String letters="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; + private static final SecureRandom random = new SecureRandom(); + + /** + * Generate a random string. + * @param length the length of the string + * @param specialChars whether to use special charachters or not + * @return the generated string + */ + public static String generate(int length, boolean specialChars) { + String used = (specialChars)? lettersSpecial : letters; + String result = ""; + for (int i = 0; i < length; i++) { + int index = (int)(random.nextDouble()*used.length()); + result += used.substring( index, index + 1 ); + } + return result; + } +} |
