【 开发知识点 一 】 随机数生成器 /dev/urandom 和 /dev/random
文章目录
- 一、随机数生成器 是什么 ?
- 二、为什么 需要 随机数生成器 ?
- 三、随机数生成器 基本原理
- 四、随机数生成器 三个输出接口
- 五、随机生成器 应用
- 1、简单应用
- 2、项目应用
一、随机数生成器 是什么 ?
/dev/random 和 /dev/urandom 是 Linux 上的字符设备文件,它们是随机数生成器,为系统提供随机数。
二、为什么 需要 随机数生成器 ?
随机数在计算中很重要。 TCP/IP 序列号、密码和 DNS 源端口号都依赖于随机数。
在密码学中,随机性无处不在,从密钥的生成到加密系统,甚至密码系统受到攻击的方式。没有随机性,所有加密操作都是可预测的,因此不安全。
三、随机数生成器 基本原理
为了尽可能的做到随机,随机数生成器会收集系统环境中各种数据,比如:鼠标的移动,键盘的输入, 终端的连接以及断开,音视频的播放,系统中断,内存 CPU 的使用等等。
生成器把收集到的各种环境数据放入一个池子 ( 熵池 ) 中,然后将这些数据进行去偏移等,主要目的也是使得数据更加无序,更加难以猜测或者预料得到
有了大量的环境数据之后,每次获取随机数时,从池子中读取指定的字节序列,这些字节序列就是生成器生成的随机数
- 收集器
收集器收集系统中的环境噪音,比如:鼠标、键盘、中断事件、内存、CPU等,收集之后进行批量偏移等操作,之后进入主熵池中
- 主熵池
主熵池接收收集器传递过来的环境数据,大小为 512字节( 4098二进制位) , 它为 次熵池(random 熵池) 和 urandom 熵池提供随机数
在 Linux上,可以通过下面的命令查看当前系统主熵池大小, 单位是 二进制位的数量
cat /proc/sys/kernel/random/poolsize
- 次熵池
/dev/random 设备关连的,大小为128字节,它是阻塞的
- urandom 熵池
和 /dev/urandom 设备关连的,大小为128字节,它是非阻塞的
- 计数器
主熵池 、次熵池 以及 urandom 熵池各自都有一个计数器,用一个整数值来记录,表示当前熵池中可用随机数的数量,这是一个预估的值,它是生成器根据熵池中的环境数据估算出来的
当熵池中有新的随机数加入时,对应熵池的计数器计数会增加,当熵池中随机数被取出时,熵池计数器计数减少
四
相关文章:
【 开发知识点 一 】 随机数生成器 /dev/urandom 和 /dev/random
文章目录 一、随机数生成器 是什么 ?二、为什么 需要 随机数生成器 ?三、随机数生成器 基本原理四、随机数生成器 三个输出接口五、随机生成器 应用1、简单应用2、项目应用一、随机数生成器 是什么 ? /dev/random 和 /dev/urandom 是 Linux 上的字符设备文件,它们是随机数…...
LabVIEW虚拟弗兰克赫兹实验仪
随着信息技术的飞速发展,虚拟仿真技术已经成为教学和研究中不可或缺的工具。开发了一种基于LabVIEW平台开发的虚拟弗兰克赫兹实验仪,该系统不仅能模拟实验操作,还能实时绘制数据图形,极大地丰富了物理实验的教学内容和方式。 …...
LLC谐振变换器恒压恒流双竞争闭环simulink仿真
1.模型简介 本仿真模型基于MATLAB/Simulink(版本MATLAB 2017Ra)软件。建议采用matlab2017 Ra及以上版本打开。(若需要其他版本可联系代为转换)针对全桥LLC拓扑,利用Matlab软件搭建模型,分别对轻载…...
TVbox蜂蜜影视:智能电视观影新选择,简洁界面与强大功能兼具
蜂蜜影视是一款基于猫影视开源项目 CatVodTVJarLoader 开发的智能电视软件,专为追求简洁与高效观影体验的用户设计。该软件从零开始编写,界面清爽,操作流畅,特别适合在智能电视上使用。其最大的亮点在于能够自动跳过失效的播放地址…...
Python 绘制迷宫游戏,自带最优解路线
1、需要安装pygame 2、上下左右移动,空格实现物体所在位置到终点的路线,会有虚线绘制。 import pygame import random import math# 迷宫单元格类 class Cell:def __init__(self, x, y):self.x xself.y yself.walls {top: True, right: True, botto…...
vue3学习-1(基础)
vue3学习-1(基础) 1. 开始API 风格选项式 API (Options API)组合式 API (Composition API) 快速创建个应用 2.基础1. 创建个应用2.模板语法3.响应式基础reactive() 的局限性[](https://cn.vuejs.org/guide/essentials/reactivity-fundamentals.html#limi…...
deepseek使用记录18——文化基因之文化融合
文明长河中的生命浪花 在洛阳白马寺的银杏树下,年轻母亲指着"农禅并重"碑刻给孩子讲述祖辈耕作的故事;在哔哩哔哩的直播间里,00后女孩穿着汉服跳起街舞,弹幕飘过"这才是文化缝合怪"。当文明交融的宏大叙事照…...
Hadoop简介
1. Hadoop简介 官网:http://hadoop.apache.org 1.1 Hadoop架构 Hadoop由三个模块组成:分布式存储HDFS、分布式计算MapReduce、资源调度引擎YARN 1.2 Hadoop历史 Hadoop作者Doug Cutting Apache Lucene是一个文本搜索系统库 Apache Nutch作为前者的一部…...
密码学(哈希函数)
4.1 Hash函数与数据完整性 数据完整性: 检测传输消息(加密或未加密)的修改。 密码学Hash函数: 构建某些数据的简短“指纹”;如果数据被篡改,则该指纹(以高概率)不再有效。Hash函数…...
谈谈单例模式中通过Htools包的SpringUtil.getBean获取Bean的好处
目录 优势 解决依赖注入失效问题: 典型应用场景: 好处 1. 实例化时序问题 2. 延迟获取解决空指针 3. 设计模式与 Spring 的权衡 代码对比:错误 vs 正确 错误示例(空指针): 正确实现(延…...
本地部署大语言模型-DeepSeek
DeepSeek 是国内顶尖 AI 团队「深度求索」开发的多模态大模型,具备数学推理、代码生成等深度能力,堪称"AI界的六边形战士"。 Hostease AMD 9950X/96G/3.84T NVMe/1G/5IP/RTX4090 GPU服务器提供多种计费模式。 DeepSeek-R1-32B配置 配置项 规…...
adb的安装
1、概念 (1)adb(android debug bridge)安卓调试桥,用于完成电脑和手机之间的通信控制。 (2)xcode来完成对于ios设备的操控,前提是有个mac电脑。 2、adb的安装 (1&…...
Python 如何实现 Markdown 记账记录转 Excel 存储
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...
随机播放音乐 伪随机
import java.util.*;/*** https://cloud.tencent.com.cn/developer/news/1045747* 伪随机播放音乐*/ public class MusicPlayer {private List<String> allSongs; // 所有歌曲列表private List<String> playedSongs; // 已经播放过的歌曲列表private Map<String…...
latex 环境配置
编译器可选 miktex和 tex live ① miktex 下载地址 Portable 版本用的也是 Installer版的安装程序 basic-miktex-24.1-x64.exe,但是需要修改文件名为 miktex-portable.exe ├──texmfs │ ├─config │ ├─data │ └─install │ └─miktex/…...
fortify安全扫描Access Control: Database问题解决
概述 Access Control: Database说白了就是权限控制。在访问数据库(sql和nosql)需要加入当前用户的权限控制。不然会被fortify扫描出来,认为客户端可能不挟持和假冒,从而导致数据被泄露。 但是这个并不是任何时候都需要的,有的接口本来…...
Java 设计模式:软件开发的精髓与艺
目录 一、设计模式的起源二、设计模式的分类1. 创建型模式2. 结构型模式3. 行为型模式三、设计模式的实践1. 单例模式2. 工厂模式3. 策略模式四、设计模式的优势五、设计模式的局限性六、总结在软件开发的浩瀚星空中,设计模式犹如一颗颗璀璨的星辰,照亮了开发者前行的道路。它…...
初学者如何用 Python 写第一个爬虫?
?? 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。 ?? …...
Cocos Creator3.8.6拖拽物体的几种方式
文章目录 前言一、第一种通过UILocation二、第二种通过UIDelta实现总结 前言 在游戏开发中,拖拽物体是一个非常常见的交互功能,无论是用于UI元素的拖动,还是场景中物体的移动,拖拽操作都能极大地提升用户体验。Cocos Creator 3.8…...
分布式Session
我用「餐厅点餐代码实战」帮你彻底搞懂分布式Session,看完不仅能应对面试,还能直接应用到实际开发。先记住这个核心矛盾:多服务员如何记住同一顾客的喜好? 一、从生活场景理解Session的本质 传统单机场景(小餐馆&…...
vLLM显存优化实战:如何用enable-chunked-prefill和max_num_batched_tokens解决CUDA out of memory
vLLM显存优化实战:突破CUDA内存瓶颈的深度调优指南 当你在8张RTX 3090上部署大语言模型时,突然弹出的"Cuda out of memory"错误就像一场噩梦。这不是简单的内存不足警告,而是高性能计算环境中常见的显存管理挑战。本文将带你深入vL…...
SEO_ 详解SEO优化中内容与外部链接的建设策略
SEO优化中内容与外部链接的建设策略 在当前互联网营销领域,SEO优化(搜索引擎优化)是提升网站流量和品牌知名度的关键手段。其中,内容与外部链接的建设策略是两大核心要素。本文将详解SEO优化中内容与外部链接的建设策略ÿ…...
新手如何快速掌握多层板设计?从电源PCB叠层结构讲起
引言:从双板板到多层板,你准备好了吗?作为一名硬件工程师,你是否也经历过这样的困惑:刚学会画双板板,项目需求就变成了4层、6层甚至8层板?面对叠层结构的选择,你是否感到无从下手&am…...
从设计到上线:基于快马平台开发一个具备完整功能的qclaw官网实战指南
从设计到上线:基于快马平台开发一个具备完整功能的qclaw官网实战指南 最近接手了一个qclaw官网的开发需求,需要从零开始构建一个具备完整功能的官方网站。经过调研,我选择了InsCode(快马)平台作为开发环境,因为它不仅提供了完整的…...
三相离网逆变器在不对称负载下的正负序控制Matlab仿真探索
三相离网逆变器在不对称负载下的正负序控制matlab仿真: 1不对称控制包括: 正序分量处理负序分量处理正序控制环负序控制环; 2正序控制换路与负序控制换路都采用dq轴上的电容电压外环电感电流内环控制; 3直流电压Vdc700V,总功率15kWÿ…...
嵌入式面试最重要的是项目经历
很多嵌入式应届生面试,我发现大家都挂在同一个地方 项目一开口,就让人听不下去了。 不是项目太少,而是项目太普通。 不是完全没做,而是讲不出自己到底做了什么。 不是技术栈不对,而是没法证明你的能力真的能落到工作里…...
STM32温室智能监控系统开发实战
1. 项目概述这个温室培育系统项目是我去年为一个农业科技公司开发的实战案例。整套系统基于STM32F103RCT6主控,整合了12种硬件模块,实现了温室环境的全自动化监控与调控。最让我自豪的是,系统上线后客户反馈作物产量提升了23%,水电…...
LLaMA3核心技术深度拆解:从架构革新到高效训练的实战密码
1. LLaMA3的架构革新:为什么这些设计能改变游戏规则 当Meta发布LLaMA3时,最让我惊讶的不是参数规模,而是那些看似微小的架构调整带来的巨大性能提升。作为经历过BERT到GPT-3时代的老兵,我见证过太多"暴力堆参数"的失败案…...
新手零基础入门:利用快马平台交互式学习Python库安装与初体验
作为一个刚接触Python数据分析的小白,第一次听说pandas库时既兴奋又忐忑。兴奋的是这个工具能帮我处理数据,忐忑的是连安装都怕搞砸。好在发现了InsCode(快马)平台,它把复杂的安装过程变成了可以直接运行的交互式教程,下面分享我的…...
IL-21蛋白在肿瘤靶向治疗中的作用机制研究
一、研究背景与科学问题肿瘤微环境中功能性肿瘤浸润淋巴细胞的缺乏是导致肿瘤免疫疗法效果欠佳的重要原因。即使在富含肿瘤浸润淋巴细胞的肿瘤组织中,功能异常的PD-1阳性Tim-3阳性CD8阳性T细胞的存在仍是肿瘤患者预后不良的主要指标。IL-21蛋白是由CD4阳性T细胞和自…...
