之前学习的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使用表格el-table-infinite-scroll.js:18 Uncaught (in promise) Error: [el-table-infinite-scroll]: .el-scrollbar__wrap element not found.

    先看下表格里面有没有这个el-scrollbar__wrap class类 没有的话升级一下element-plus到最新的就行 你可以先查看element-plus的版本 npm view elem ...

  2. 使用elementUI组件来完成前台展示

    使用elementUI组件来完成前台展示,当然不是全部都用,有用到的时候,才用. 网址:https://element.eleme.cn/#/zh-CN 安装 cnpm i element-ui -S ...

  3. jquery的折叠动画 渐隐渐显动画

     <button name="up">折叠隐藏</button>     <button name="down">折叠显示& ...

  4. 手写LRU热点缓存数据结构

    引言 LRU是开发过程中设计缓存的常用算法,在此基础上,如何设计一个高效的缓存呢?本文就带大家分析并手撸一个LRUCache. LRU算法 LRU(Least recently used,最近最少使用 ...

  5. 函数式表达式基本类型及固定类型 demo

    1.常见类型及使用 import java.util.function.BiConsumer; import java.util.function.BiFunction; import java.ut ...

  6. WPF 自定义泛型用户控件后跨程序集继承用户控件的解决方案

    自定义泛型用户控件: <UserControl x:Class="ClassLibrary1.UcEumCmb" xmlns="http://schemas.mic ...

  7. STM32 CubeMX 学习:000-搭建开发环境

    背景 了解了 STM32 标准库以后,为了紧跟发展的潮流,我们以 CubeMx为基础 开始进行 Hal(Hardware Abstract Layer, 硬件抽象层)库的学习. CubeMx 是一个 ...

  8. ReST,以及RESTful的 简单介绍

    什么是 ReST 阮一峰说的比较清楚,具体见他的博客文章. 二.名称 ReST这个词,是[Roy Thomas Fielding](http://en.wikipedia.org/wiki/Roy_F ...

  9. 开发板测试手册——SPI FLASH 读写、USB WIFI 模块(2)

    目录 1.8 SPI FLASH 读写测试 20 1.9 USB 接口读写测试 21 1.10 网络接口测试 23 1.10.1 网络连通测试 23 1.10.2 网络速度测试 25 2 网络静态 I ...

  10. 基于NXP i.MX 6ULL——MQTT通信协议的开发案例

    前  言 本指导文档适用开发环境: Windows开发环境:Windows 7 64bit.Windows 10 64bit Linux开发环境:Ubuntu 18.04.4 64bit 拟机:VMw ...