Java SecureRandom 简单生成随机正整数
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 简单生成随机正整数相关推荐
- JAVA之简单的随机点名
JAVA之简单的随机点名 Random类(位于java.util包)的实例用于生成伪随机数流.本文通过使用Random类,来实现简单的随机点名. 一.代码 import java.util.Rando ...
- Java根据正则生成随机字符串
regex="^([0-9A-Za-z\-_\.]+)@([0-9a-z]+\.[a-z]{2,3}(\.[a-z]{2})?)$" 调研了下,目前有5种开源工具: ①import ...
- java 姓名_Java生成随机姓名、性别和年龄的实现示例
一.定义实体类Person,封装生成的数据 package net.dc.test; public class Person { private String name; private String ...
- java 练习之生成随机四位验证码
java 小demo - 随机生成四位验证码 import javax.swing.*; import java.awt.*; import java.util.Random; /*** @autho ...
- Java工具类-生成随机汉字和名称
将代码复制到你的项目中,运行test方法即可看到效果 import org.junit.Test;import java.io.UnsupportedEncodingException; import ...
- 用java输出出生日期,生成随机出生日期
I'm trying to generate a random date of birth for people in my database using a Java program. How wo ...
- java 邮箱地址生成器_关于java:生成随机电子邮件
你能帮帮我吗??如何使用JAVA使用硒生成随机电子邮件?? 我在StackOverflow中查看这里,但还没有找到答案.我试过了,但没用 电子邮件地址还是真盒子? 如果你只想发电子邮件,就不需要硒了. ...
- java高效随机生成随机(英文+数字),可自定义
高效 package com.messcat.imgrnt.utils;import java.io.Serializable; import java.util.Random;/*** 生成随机用户 ...
- python随机生成一个地区地址_Python生成随机MAC地址
利用python代码生成一个随机的MAC地址,使用python网络编程时或可用上,如果使用scapy模块则可直接利用RandMAC()函数来生成MAC. python 复制代码 代码如下: impor ...
- 【Java工具类】使用Random类对象生成随机整数
本文目录 1.导言 2.Java实现与伪码模型 3.nextInt(bound)方法解析 4.nextInt(bound)方法高级玩法:控制随机数的生成范围 5.心得 6.随机数逸话 1.导言 Ran ...
最新文章
- 重工行业:IT运维精细化管理新篇章
- TableCellRenderer TableCellEditor(三)
- 从eclipse中下载到手机的android程序总是旧的版本
- word2vector 讲的比较好的文章
- 【Python】Python语言学习:pip工具使用知识,模型保存pickle,PDF与docx相互转换处理...
- 菜鸟教程-Javascript学习笔记-JS函数之前
- 自建比赛服务器,《三国杀》怎么自己创建比赛?自建赛事规则介绍
- eclipse 修改java代码不重启服务器 生效配置
- Base64 + 变为 空格 问题分析
- 细节真的能决定成败么?
- php为什么发送不到sql,PHP-为什么我的Ajax无法执行我的SQL查询?
- 分页组件extremeComponents的使用
- Android攻城狮Dialog
- c1语言水平要多久,「西班牙留学」零基础到西班牙读语言,多久能到C1?
- SpringCloud(三):监控中心 hystrix turbine
- 商品租赁系统(Java_类/接口/继承/多态)
- 锂离子电池的国际标准和国家标准(含安全方面IEC62133等,IEC61060电性能和UN38.3 GB4943运输存储标准)
- 搞不懂,想不通,烦死啦
- 如何使用CRM管理外贸客户资源?
- AdGuard家长控制模式的运用
热门文章
- jquery-galleryview-2.0 漂亮多样化的图片特效(多项自定义)
- 网管日志-06.07.13
- Python全栈开发——线程与进程的概念
- 计数器控制的while循环(C++/python版)
- Java中List,ArrayList、Vector,map,HashTable,HashMap区别用法
- java 解码_如何在Java中进行URL解码?
- 小新pro13睡眠后无法唤醒_电脑休眠后,就无法唤醒了?怎么办?快速教你解决这个问题...
- 拓端tecdat|R语言Poisson回归的拟合优度检验
- 拓端tecdat|R语言如何找到患者数据中具有差异的指标?(PLS—DA分析)
- 计算n位二进制的所有情况