1 /*
2 * Created by IntelliJ IDEA.
3 * User: mike
4 * Date: Jan 23, 2002
5 * Time: 6:10:02 PM
6 * To change template for new class use
7 * Code Style | Class Templates options (Tools | IDE Options).
8 */
9 package com.atlassian.core.util;
10
11 public class RandomGenerator
12 {
13 /**
14 * Generate a random password (length 6)
15 */
16 public static String randomPassword()
17 {
18 return randomString(6);
19 }
20
21 /**
22 * Generate a random string of characters - including numbers
23 */
24 public static String randomString(int length)
25 {
26 return randomString(length, true);
27 }
28
29 /**
30 * Generate a random string of characters
31 */
32 public static String randomString(int length, boolean includeNumbers)
33 {
34 StringBuffer b = new StringBuffer(length);
35
36 for (int i = 0; i < length; i++)
37 {
38 if (includeNumbers)
39 b.append(randomCharacter());
40 else
41 b.append(randomAlpha());
42 }
43
44 return b.toString();
45 }
46
47 /**
48 * Generate a random alphanumeric character.
49 *
50 * 3/4rs of the time this will generate a letter, 1/4 a number
51 */
52 public static char randomCharacter()
53 {
54 int i = (int) (Math.random() * 3);
55 if (i < 2)
56 return randomAlpha();
57 else
58 return randomDigit();
59 }
60
61 /**
62 * Generate a random character from the alphabet - either a-z or A-Z
63 */
64 public static char randomAlpha()
65 {
66 int i = (int) (Math.random() * 52);
67
68 if (i > 25)
69 return (char) (97 + i - 26);
70 else
71 return (char) (65 + i);
72 }
73
74 /**
75 * Generate a random digit - from 0 - 9
76 */
77 public static char randomDigit()
78 {
79 int i = (int) (Math.random() * 10);
80 return (char) (48 + i);
81 }
82 }