完成 RandomTools 单元测试

This commit is contained in:
2024-12-27 18:05:59 +08:00
parent 36823c1181
commit f1491117de
3 changed files with 120 additions and 4 deletions

View File

@@ -16,6 +16,7 @@
package xyz.zhouxy.plusone.commons.util;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Objects;
import java.util.Random;
@@ -23,14 +24,40 @@ import java.util.concurrent.ThreadLocalRandom;
import javax.annotation.Nonnull;
/**
* 随机工具类
* <p>
* 建议调用方自行维护 Random 对象
* </p>
* @author <a href="http://zhouxy.xyz:3000/ZhouXY108}">ZhouXY</a>
*/
public final class RandomTools {
public static final SecureRandom DEFAULT_SECURE_RANDOM = new SecureRandom();
private static final SecureRandom DEFAULT_SECURE_RANDOM;
static {
SecureRandom secureRandom = null;
try {
secureRandom = SecureRandom.getInstanceStrong(); // 获取高强度安全随机数生成器
}
catch (NoSuchAlgorithmException e) {
secureRandom = new SecureRandom(); // 获取普通的安全随机数生成器
}
DEFAULT_SECURE_RANDOM = secureRandom;
}
public static final String CAPITAL_LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static final String LOWERCASE_LETTERS = "abcdefghijklmnopqrstuvwxyz";
public static final String NUMBERS = "0123456789";
public static SecureRandom defaultSecureRandom() {
return DEFAULT_SECURE_RANDOM;
}
public static ThreadLocalRandom currentThreadLocalRandom() {
return ThreadLocalRandom.current();
}
/**
* 使用传入的随机数生成器,生成指定长度的字符串
*