Java SecureRandom 生成随机正整数

最近有个生成随机正整数的需求 最开始是用 java.util.Random 做的,但是扫描提示这个不安全……建议使用 SecureRandom 类
然后就改成了 SecureRandom ;这里做个笔记
ps: 这里入参都必须是正数,否则生成出来的有问题;我这里没有做判断,如果需要请自行加上

导包

import java.security.SecureRandom;

util代码

/*** 获取 0 - maxNumber 之间的随机数 [0, maxNumber)* @param maxNumber* @return int*/
public static int randomInt(int maxNumber) {return RandomNumberGeneratorHolder.randomNumberGenerator.nextInt(maxNumber);
}/*** 获取 minNumber - maxNumber 之间的随机数 [minNumber, maxNumber)* @param minNumber* @param maxNumber* @return int*/
public static int randomInt(int minNumber, int maxNumber) {if(minNumber == maxNumber) {return minNumber;}int diff = 0;if(minNumber > maxNumber) {diff = minNumber - maxNumber;} else {diff = maxNumber - minNumber;}return minNumber + randomInt(diff);
}/*** 获取 0 - maxNumber 之间的随机数 [0, maxNumber)* @param maxNumber* @return long*/
public static long randomLong(long maxNumber) {long bits, val;  do {  bits = (RandomNumberGeneratorHolder.randomNumberGenerator.nextLong() << 1) >>> 1;  val = bits % maxNumber;  } while ((bits - val + (maxNumber - 1)) < 0L);  return val;
}/*** 获取 minNumber - maxNumber 之间的随机数 [minNumber, maxNumber)* @param minNumber* @param maxNumber* @return long*/
public static long randomLong(long minNumber, long maxNumber) {if(minNumber == maxNumber) {return minNumber;}long diff = 0;if(minNumber > maxNumber) {diff = minNumber - maxNumber;} else {diff = maxNumber - minNumber;}return minNumber + randomLong(diff);
}private static final class RandomNumberGeneratorHolder {static final SecureRandom randomNumberGenerator = new SecureRandom();
}

参考博客:

https://blog.csdn.net/openblogs/article/details/25439061

Java SecureRandom 简单生成随机正整数相关推荐

  1. JAVA之简单的随机点名

    JAVA之简单的随机点名 Random类(位于java.util包)的实例用于生成伪随机数流.本文通过使用Random类,来实现简单的随机点名. 一.代码 import java.util.Rando ...

  2. Java根据正则生成随机字符串

    regex="^([0-9A-Za-z\-_\.]+)@([0-9a-z]+\.[a-z]{2,3}(\.[a-z]{2})?)$" 调研了下,目前有5种开源工具: ①import ...

  3. java 姓名_Java生成随机姓名、性别和年龄的实现示例

    一.定义实体类Person,封装生成的数据 package net.dc.test; public class Person { private String name; private String ...

  4. java 练习之生成随机四位验证码

    java 小demo - 随机生成四位验证码 import javax.swing.*; import java.awt.*; import java.util.Random; /*** @autho ...

  5. Java工具类-生成随机汉字和名称

    将代码复制到你的项目中,运行test方法即可看到效果 import org.junit.Test;import java.io.UnsupportedEncodingException; import ...

  6. 用java输出出生日期,生成随机出生日期

    I'm trying to generate a random date of birth for people in my database using a Java program. How wo ...

  7. java 邮箱地址生成器_关于java:生成随机电子邮件

    你能帮帮我吗??如何使用JAVA使用硒生成随机电子邮件?? 我在StackOverflow中查看这里,但还没有找到答案.我试过了,但没用 电子邮件地址还是真盒子? 如果你只想发电子邮件,就不需要硒了. ...

  8. java高效随机生成随机(英文+数字),可自定义

    高效 package com.messcat.imgrnt.utils;import java.io.Serializable; import java.util.Random;/*** 生成随机用户 ...

  9. python随机生成一个地区地址_Python生成随机MAC地址

    利用python代码生成一个随机的MAC地址,使用python网络编程时或可用上,如果使用scapy模块则可直接利用RandMAC()函数来生成MAC. python 复制代码 代码如下: impor ...

  10. 【Java工具类】使用Random类对象生成随机整数

    本文目录 1.导言 2.Java实现与伪码模型 3.nextInt(bound)方法解析 4.nextInt(bound)方法高级玩法:控制随机数的生成范围 5.心得 6.随机数逸话 1.导言 Ran ...

最新文章

  1. 重工行业:IT运维精细化管理新篇章
  2. TableCellRenderer TableCellEditor(三)
  3. 从eclipse中下载到手机的android程序总是旧的版本
  4. word2vector 讲的比较好的文章
  5. 【Python】Python语言学习:pip工具使用知识,模型保存pickle,PDF与docx相互转换处理...
  6. 菜鸟教程-Javascript学习笔记-JS函数之前
  7. 自建比赛服务器,《三国杀》怎么自己创建比赛?自建赛事规则介绍
  8. eclipse 修改java代码不重启服务器 生效配置
  9. Base64 + 变为 空格 问题分析
  10. 细节真的能决定成败么?
  11. php为什么发送不到sql,PHP-为什么我的Ajax无法执行我的SQL查询?
  12. 分页组件extremeComponents的使用
  13. Android攻城狮Dialog
  14. c1语言水平要多久,「西班牙留学」零基础到西班牙读语言,多久能到C1?
  15. SpringCloud(三):监控中心 hystrix turbine
  16. 商品租赁系统(Java_类/接口/继承/多态)
  17. 锂离子电池的国际标准和国家标准(含安全方面IEC62133等,IEC61060电性能和UN38.3 GB4943运输存储标准)
  18. 搞不懂,想不通,烦死啦
  19. 如何使用CRM管理外贸客户资源?
  20. AdGuard家长控制模式的运用

热门文章

  1. jquery-galleryview-2.0 漂亮多样化的图片特效(多项自定义)
  2. 网管日志-06.07.13
  3. Python全栈开发——线程与进程的概念
  4. 计数器控制的while循环(C++/python版)
  5. Java中List,ArrayList、Vector,map,HashTable,HashMap区别用法
  6. java 解码_如何在Java中进行URL解码?
  7. 小新pro13睡眠后无法唤醒_电脑休眠后,就无法唤醒了?怎么办?快速教你解决这个问题...
  8. 拓端tecdat|R语言Poisson回归的拟合优度检验
  9. 拓端tecdat|R语言如何找到患者数据中具有差异的指标?(PLS—DA分析)
  10. 计算n位二进制的所有情况