搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
凡人多烦事01
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
第十五届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组试题 A: 握手问题_第十五届蓝桥杯软件赛省赛c/c++b 组题解
2
Intellij IDEA下 Spring boot debug配置_idea 设置 debug config
3
【声呐仿真】学习记录0.5-配置ssh远程连接docker、在docker中使用nvidia显卡
4
在VSCode中新配置一个ros项目_vscode添加roscpp, rospy作为依赖项
5
【LeetCode】96. 不同的二叉搜索树(中等)——代码随想录算法训练营Day40
6
rctimer二轴云台及云台控制板调试(Simple bgc 8位破解板)_simplebgc 8位
7
几篇视频生成的背景文章
8
git强制覆盖本地命令
9
sqlite3、sqlite3命令以及sqlite3_open、sqlite3_exec、sqlite3_close数据库API的应用---+数据库经典词典项目
10
Android上传手机图片到服务器(这篇你要是看不懂,全网没你可以看懂的了!!!)_安卓上传图片到服务器
当前位置:
article
> 正文
(收藏)安全性要求高的要用真正密码随机数生成器_安全场景下必须使用密码学意义上的安全随机数
作者:凡人多烦事01 | 2024-04-12 23:59:47
赞
踩
安全场景下必须使用密码学意义上的安全随机数
首先随机数最基本的概念是
统计学意义上的伪随机数
,对于给定的一个样本集,每个元素
出现的概率是大概相似的,只要从人类的视角看上去一组数是随机的,就符合统计学意义
上的伪随机数定义;因为统计学上的伪随机数,在给定随机样本和随机算法的情况下,能
够有效地演算出随机样本的剩余部分,因此统计学上的伪随机数需要得到进一步地安全强
化,
密码学安全的伪随机数
应运而生;而随机数的最终概念形态,则是
真随机数
,其定义
是在满足前两个条件的基础上,再增加一个随机样本不可重现的条件。
然而,严格的真随机数是一种非常理想的形态,从真实情况来看,只要给定边界条件,真
随机数其实并不存在。因为无论背景辐射、物理噪音还是抛掷硬币,只要经过非常精密的
观察和测量,都是可以被预测的。但是在这些例子中,实际的边界条件非常复杂,而且是
极难观测的,因此我们可以认为这些条件下产生的随机数是非常接近真随机数的伪随机
数。
随机数的生成
产生随机数的方法被称为随机数生成器(RNG, random number generator)。
在实际应用中我们往往使用伪随机就足够了,这些随机数主要通过一个固定的、可重复的
计算方法生成,这些计算方法经过特殊的设计,使得产生的结果具有类似真随机数的统计
学特征。这种生成的伪随机数一般只是重复的周期比较大的数列,以算法和种子值共同作
用生成。这种生成伪随机数的方法叫伪随机数生成器(PRNG, pseudo-random number
generator),进一步能够生成密码学安全随机数的方法叫密码学伪随机数生成器
(CPRNG, cryptographic pseudo-random number generator)。
从实现的角度来看,伪随机数生成器会在函数内部维护一个状态,每个随机数的诞生,时
都是从这个状态计算出来的,这个状态随着下一个随机数的生成而改变,而第一个状态则
是由种子初始化得到。
无效的随机数
String
generateUrl
( String baseUrl ) {
Random
randomGen
=
new
Random
();
randomGen.setSeed((
new
Date
()).getTime());
return
(baseUrl + randomGen.nextInt(
400000000
) +
".html"
);
}
可以看到,如下代码使用
Random.nextInt()
函数来生成新的 URL 地址,其种子值由
(new Date()).getTime()
生成,该数值为 1970 年 1 月 1 日 00:00:00 GMT 至今的毫
秒数,已经具备较强的随机性和不可预测性。那么,这是否能说明,这段代码已经安全了
呢?
答案并非如此。
Random.nextInt()
函数是
java.util.Random
类的成员函数,而
java.util.Random
类是一个统计学意义上的伪随机数生成器,因此会更容易被攻击者猜
测到生成的数值,
对于安全性敏感的应用,建议使用密码学安全的随机数生成器
java.security.SecureRandom
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/凡人多烦事01/article/detail/413280
推荐阅读
article
python
小
甲鱼
教学:
01
_
小
甲鱼
python
...
使用原始字符r使用原始字符r,转义字符将不再有效字符串最后加反斜杠表示字符串没完,换行可以使用长字符串输出重现随机数Py...
赞
踩
article
MySQL
多表
查询
...
等值连接和非等值连接,自连接和非自连接,内连接和外连接,JOIN,UNION
MySQL
多表
查询
...
赞
踩
article
SourceTree
免
登录
跳过
初始设置_
sourtree
跳过
登录
...
SourceTree
免
登录
跳过
初始设置_
sourtree
跳过
登录
sourtree
跳过
登录
用于...
赞
踩
article
【发布的
微信
小
程序
源码
丢失
怎么办
】【
微信
小
程序
反编译】记录一次
小
程序
源码
找回经历...
【发布的
微信
小
程序
源码
丢失
怎么办
】【
微信
小
程序
反编译】记录一次
小
程序
源码
找回经历_
小
程序
源码
丢失
怎么办
小
程序
源码
丢失怎么...
赞
踩
article
【
财务
】
财务
分析
---
管理
报告
体系
搭建
_
管理
报表
搭建
...
财务
分析
体系
搭建
的是一个系统化的功能,涉及的业务面非常广,
财务
分析
也能表现出清晰的数据,以此进行改善;本文作者详细
分析
了...
赞
踩
article
SecureRandom
--
生成
随机数
_
securerandom
生成
3位
随机数
...
*使用不当的方式*byte[] salt = new byte[128];
SecureRandom
secureRan...
赞
踩
article
编译
的
相关流程...
二、
编译
的
相关流程 预处理(Pre-Processing)-->
编译
(Compiling)-->汇编(Assemblin...
赞
踩
article
Flask
接受
任务
并异步处理同时
多线程
处理
任务
_
flask
多线程
异步
任务
...
常用
flask
任务
,记录比较,后期方便查看。_
flask
多线程
异步
任务
flask
多线程
异步
任务
...
赞
踩
article
动手学
RAG
:
汽车
知识
问答_
rag
关键字
提取
...
在自然语言处理领域,大型语言模型(LLM)如GPT-3、BERT等已经取得了显著的进展,它们能够生成连贯、自然的文本,回...
赞
踩
article
使用
AsyncTask
+
HttpClient
_
android
asynctask
+httpclien...
package com.example.slx.slx12_27_01;import
android
.os.AsyncT...
赞
踩
article
浏览器
的
编码
问题_
浏览器
编码
...
浏览器
编码
问题:通过开发者模式查看
浏览器
编码
,以及使用记事本创建包含中文内容的文件,在不同
编码
下的效果。
浏览器
编码
...
赞
踩
article
22
届
计算机
考研
复试
技巧以及
注意事项
高频问答35问
Python
集锦【一定要记牢】_
计算机
考研
复试
g...
这几天
22
年
考研
初试成绩即将公布,我们的考生下一步即将面临的就是
复试
,我 们知道
复试
中面试一项是起着最最至关重要的作用。...
赞
踩
article
教你简单几步
获取
微信
小
程序
源码
_
传奇
微信
小
程序
源码
...
简单几步
获取
微信
小
程序
源码
本文记录了我通过反编译获得
微信
小
程序
源码
的过程.1.环境准备1.下载node.js,直接去官网...
赞
踩
article
代码管理工具
git
学习笔记05--探索.
git
目录_.
git
/
logs
/
refs
/
heads
...
探索.
git
目录_.
git
/
logs
/
refs
/
heads
.
git
/
logs
/
refs
/
heads
...
赞
踩
article
Flutter
学习三-
Flutter
基本
结构
和
原理_
flutter
android
profile
...
Flutter
有三种运行模式debug 调试模式
profile
分析模式release 运行模式调试模式特点:原生平台:...
赞
踩
article
提取
无具体
数据
的
柱状图/
折线图
中
的
数据
_从
柱形图
提取
原始
数据
...
复现无具体数值
的
实验
数据
图_从
柱形图
提取
原始
数据
从
柱形图
提取
原始
数据
...
赞
踩
article
HTTP
/
1.0
、
HTTP
/
1.1
、
HTTP
/2.0、
HTTP
3.0的区别...
1996年5月,
HTTP
/
1.0
版本发布,为了提高系统的效率,请注意上面提到的
HTTP
/
1.0
中浏览器与服务器只保持短暂...
赞
踩
article
idea
创建
Spark
Maven项目_
idea
spark
maven
项目...
在
Spark
快速入门指南 –
Spark
安装与基础使用中介绍了
Spark
的安装与配置,在那里还介绍了使用
spark
-su...
赞
踩
article
吊炸天
的
Kafka
图形化
工具
Eagle
,
必须推荐给你!_
kafka
的
图形化
工具
...
Kafka
是当下非常流行
的
消息中间件
,
据官网透露
,
已有成千上万
的
公司在使用它。最近实践了一波
Kafka
,
确实很好很强大。...
赞
踩
article
Flutter
组件
|
Builder
构造器与
BuildContext
认知...
主题列表:juejin, github, smartblue, cyanosis, channing-cyan, fan...
赞
踩
相关标签
python
数据库
sql
mysql
运维
git
微信小程序
小程序
uniapp
javascript
人工智能
大数据
产品经理
产品设计
SecureRandom
汇编
gcc
编译器
语言
fortran
工作
flask
后端
汽车
chatgpt