on it road .com

Java 安全随机数流

要获得安全随机数流(即加密强随机数),请使用子类“SecureRandom”。
传递给 SecureRandom 对象的任何种子材料都必须是不可预测的,并且所有 SecureRandom 输出序列都必须具有强大的加密能力。

请注意,上面讨论的所有方法(ints()、longs()、doubles() 及其重载)也适用于 SecureRandom,只是使用加密强伪随机数生成器 (CSPRNG)。

CSPRNGs 使用熵,它只不过是一个不可预测的输入(真正的随机源)。
它可能是一个硬件随机数生成器,也可能是一些不可预测的系统进程,例如计时事件、中断等。

Java 如何生成随机数流?

使用 Random 类的方法

示例: 生成随机数流

package com.onitroad.java8.streams;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
public class RandomNumberExample 
{
	public static void main(String[] args) 
	{
		Random random = new Random();

		// 5个随机整数
		random.ints( 5 ).sorted().forEach( System.out::println );
		// 5个0到0.5之间的随机双精度数。 包括0,不包括0.5 
		random.doubles( 5, 0, 0.5 ).sorted().forEach( System.out::println );
		//  将long装箱为Long,以便它们可以被收集
		List<Long> longs = random.longs( 5 ).boxed().collect( Collectors.toList() );
		System.out.println(longs);
	}
}

Java 8 生成随机数的方法

Java8在Random类中添加了几个方法,这些方法可以返回随机数的顺序流。

最广泛使用的方法有:

IntStream    ints()
LongStream   longs()
DoubleStream doubles()
日期:2020-09-17 00:10:08 来源:oir作者:oir