之前学习的Random工具类只是一个伪随机数类。。。

@Test
public void secureRandom() throws Exception {
// 个不可预测的安全的随机数
// 无法指定种子,它使用RNG(random number generator)算法
// 实际上有多种不同的底层实现,有的使用安全随机种子加上伪随机数算法来产生安
// SecureRandom常用工具类构建全的随机数,有的使用真正的随机数生成器。实际使用的时候,可以优先获取高强度的安全随机数生成器,如果没有提供,再使用普通等级的安全随机数生成器 // 实例获取
SecureRandom secureRandom = new SecureRandom(); // jdk8 获取更安全的实例
SecureRandom instanceStrong = SecureRandom.getInstanceStrong(); String algorithm = secureRandom.getAlgorithm();
Provider provider = secureRandom.getProvider();
String providerInfo = provider.getInfo(); System.out.println("normalInstance algorithm -> " + algorithm + "\nprovider -> " + providerInfo); System.out.println("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); algorithm = instanceStrong.getAlgorithm();
provider = instanceStrong.getProvider();
providerInfo = provider.getInfo(); System.out.println("strongInstance algorithm -> " + algorithm + "\nprovider -> " + providerInfo);
}

打印结果:

normalInstance algorithm -> SHA1PRNG
provider -> SUN (DSA key/parameter generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509 certificates; JKS & DKS keystores; PKIX CertPathValidator; PKIX CertPathBuilder; LDAP, Collection CertStores, JavaPolicy Policy; JavaLoginConfig Configuration)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
strongInstance algorithm -> Windows-PRNG
provider -> Sun's Microsoft Crypto API provider Process finished with exit code 0

获取随机数实例和Random类实例是一样的。

【Java】API SecureRandom 安全随机的更多相关文章

  1. Java api 入门教程 之 JAVA的Random类

    在实际的项目开发过程中,经常需要产生一些随机数值,例如网站登录中的校验数字等,或者需要以一定的几率实现某种效果,例如游戏程序中的物品掉落等. 在Java API中,在java.util包中专门提供了一 ...

  2. 9. 使用ZooKeeper Java API编程

    ZooKeeper是用Java开发的,3.4.6版本的Java API文档可以在http://zookeeper.apache.org/doc/r3.4.6/api/index.html上找到. Ti ...

  3. 【Hbase学习之三】Hbase Java API

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-2.6.5 hbase-0.98.12.1-h ...

  4. Java多线程--线程及相关的Java API

    Java多线程--线程及相关的Java API 线程与进程 进程是线程的容器,程序是指令.数据的组织形式,进程是程序的实体. 一个进程中可以容纳若干个线程,线程是轻量级的进程,是程序执行的最小单位.我 ...

  5. Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结

    转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbas ...

  6. HBase 相关API操练(二):Java API

    一.HBase Java编程 (1)HBase是用Java语言编写的,它支持Java编程: (2)HBase支持CRUD操作:Create,Read,Update和Delete: (3)Java AP ...

  7. 泛型接口、JAVA API、包装类

    泛型接口就是拥有一个或多个类型参数的接口 语法: public interface 接口名<类型形参>{ 方法名(类型形参 类型形参实例); } 示例: public interface ...

  8. Elasticsearch Java API 很全的整理

    Elasticsearch 的API 分为 REST Client API(http请求形式)以及 transportClient API两种.相比来说transportClient API效率更高, ...

  9. MongoDB Java API操作很全的整理

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...

  10. 常用Java API之Ramdom--用代码模拟猜数小游戏

    常用Java API之Ramdom Ramdom类用来生成随机数字.使用起来也是三个步骤: 1.导包 import java.util.Random; 2.创建 Random r = new Rand ...

随机推荐

  1. vue3 KeepAlive

    在Vue.js 3中,<keep-alive> 是一个抽象组件,用于保留其子组件状态,防止在切换组件时销毁它们.这对于在页面间切换时保留组件的状态或避免重复渲染特定组件非常有用.<k ...

  2. jquery的循环 tab切换

        <ul>         <li>1</li>         <li>2</li>         <li>3< ...

  3. skywalking启动配置agent及数据储存对数据源(mysql,es)版本要求

    skywalking启动配置agent及数据储存对数据源(mysql,es)版本要求 # skywalking-agent.jar的本地磁盘路径-javaagent:D:\SkyWalking\sky ...

  4. WIndow Server 2019 服务器 MinIO下载并IIS配置反向代理

    1.官网下载并配置 下载MinIO Serve地址(不需要安装,放在目录就行) https://dl.min.io/server/minio/release/windows-amd64/minio.e ...

  5. __int1024!

    使用说明: 数据范围约为\(-2^{1024}\le N \le2^{1024}\),反映到十进制约为\(-10^{309}\le N \le10^{309}\),但不保证完全如此. 输入输出使用自带 ...

  6. uniapp ios 白屏

    这个问题找了两天,问题出现的很离谱代码编译没问题,安卓.ios真机运行也没问题,打包以后安卓没问题,iphone 12(ios16.6.1)安装也没问题,还有一个iphone 6s(ios14.7.1 ...

  7. Jenkins创建任务进行构建项目配置

    总体构建项目的操作步骤 分为Generna(总的描述).源码管理.构建触发器.构建环境.构建.构建后的操作 1.Dashboard-> new item > 新建一个任务,选择freest ...

  8. 3568F-Linux-RT系统测试手册

  9. Top cluster 树分块

    写点基础的东西.随便写的,勿喷. top cluster 一个 cluster 是一个联通子图,且至多有两个点与其他部分连接 这两个点被称为 boundary node 其余点被称为 internal ...

  10. Java(screw)生成数据库表结构

    数据库支持 MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB(2016) 文档生成支持 html word markdown 方式一:代码 ...