java编程遇到{Insecure Randomness}问题对随机数Random和SecureRandom的使用分析

一、Random

Insecure Randomness这个问题就是原来公司老代码使用random遇到的问题,因为这个类提供的获取随机数的方法是可预测的,random是用来创建伪随机数。所谓伪随机数,是指只要给定一个初始种子产生的随机数列是完全一样的
基本算法:linear congruential pseudorandom number generator (LGC) 先行同余法为随机数生成器在注重信息安全的应用中,不要使用 LCG 算法生成随机数,要使用SecureRandom。但是唯一好的一点就是不需要处理异常和抛异常

二、SecureRandom

所以我写了一个工具类用来提供这个方法可以让其地方调这个方法而且不用处理异常

public class SecureRandomUtil {
//生成日志类private static Logger logger = LoggerFactory.getLogger(SecureRandomUtil.class);public static int getSecureRandom(int size) {SecureRandom sr = null;try {sr = SecureRandom.getInstanceStrong(); // 获取高强度安全随机数生成器} catch (NoSuchAlgorithmException e) {logger.error(e.getMessage(), e);sr = new SecureRandom(); // 获取普通的安全随机数生成器}
//限制获取出来的随机数最大值int i = sr.nextInt(size);return i;}
public static int getSecureRandom() {SecureRandom sr = null;try {sr = SecureRandom.getInstanceStrong(); // 获取高强度安全随机数生成器} catch (NoSuchAlgorithmException e) {logger.error(e.getMessage(), e);sr = new SecureRandom(); // 获取普通的安全随机数生成器}int i = sr.nextInt();return i;}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部