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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package com.yanzuoguang.util.helper;
import com.yanzuoguang.util.contants.SystemContants;
import java.util.Random;
import java.util.UUID;
/**
* 随机码生成工具
*
* @author 颜佐光
*/
public final class RandomHelper {
public static final String NUMBER = "0123456789";
public static final String LOWER_LETTER = "abcdefghijklmnopqrstuvwxyz";
public static final String UPPER_LETTER = LOWER_LETTER.toUpperCase();
private static final String RANDOM_CHARSET = NUMBER + LOWER_LETTER + UPPER_LETTER;
private static final int RANDOM_CHARSET_LEN = RANDOM_CHARSET.length();
private static final int RANDOM_SIZE = 6;
/**
* 得到32位随机码
*
* @return
*/
public static String generateUUID32() {
return replace(UUID.randomUUID().toString(), SystemContants.TRANSVERSE, SystemContants.EMPTY);
}
/**
* 得到64位随机码
*
* @return
*/
public static String generateUUID64() {
return generateUUID32() + generateUUID32();
}
/**
* 随机码(6位)
*
* @return
*/
public static String generateRandomCodeSix() {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < RANDOM_SIZE; i++) {
sb.append(generateRandomCodeOne(RANDOM_CHARSET, RANDOM_CHARSET_LEN));
}
return sb.toString();
}
/**
* 随机码(指定长度)
*
* @param len 随机码长度
* @return
*/
public static String generateRandomCodeSix(int len) {
if (len < 1) {
throw new RuntimeException("length params is error, must be greater than 0, this params is [" + len + "]");
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < len; i++) {
sb.append(generateRandomCodeOne(RANDOM_CHARSET, RANDOM_CHARSET_LEN));
}
return sb.toString();
}
/**
* 随机生成指定字符集、指定长度的的随机码
*
* @param charset 基础字符集
* @param len 生成随机码长度
* @return
*/
public static String generateRandomCode(String charset, int len) {
if (null == charset || "".equals(charset)) {
throw new RuntimeException("random code, essential data is empty.");
}
if (len < 1) {
throw new RuntimeException("length params is error, must be greater than 0, this params is [" + len + "]");
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < len; i++) {
sb.append(generateRandomCodeOne(charset, charset.length()));
}
return sb.toString();
}
/**
* 指定字符集中,随机产生一个字符
*
* @param charset
* @param len
* @return
*/
private static String generateRandomCodeOne(String charset, int len) {
int index = new Random().nextInt(len);
return String.valueOf(charset.charAt(index));
}
private static String replace(String str, String olds, String news) {
if (null == str) {
return "";
}
while (str.indexOf(olds) > -1) {
str = str.replace(olds, news);
}
return str;
}
}