openssl3.2 - exp - 产生随机数
文章目录
- openssl3.2 - exp - 产生随机数
- 概述
- 笔记
- END
openssl3.2 - exp - 产生随机数
概述
要用到openssl产生的随机数, 查了资料.
如果用命令行产生随机数, 如下:
openssl rand -hex -num 6
48bfd3a64f54
单步跟进去, 看到主要就是调用了一个RAND_bytes(), 没其他了.
官方说, 这个函数不一定会成功, 所以一定要判断返回值是否为1.
看openssl实现可知, openssl可以产生任意长度的随机数.

不用特意初始化随机数, 只要将openssl默认的初始化函数都调用到就行. e.g. 程序入口处调用自己总的openssl初始化函数.
void mem_hook()
{int i_rc = 0;uint64_t u64_init_opt = 0;// 如果不需要检查openssl的内存泄漏, 就注释掉下面2行的内存分配函数的hook.// CRYPTO_get_mem_functions(&malloc_fn_org, &realloc_fn_org, &free_fn_org);// CRYPTO_set_mem_functions(my_CRYPTO_malloc, my_CRYPTO_realloc, my_CRYPTO_free);// openssl init allOPENSSL_INIT_SETTINGS* _ossl_init_setting = OPENSSL_INIT_new();u64_init_opt = OPENSSL_INIT_LOAD_CRYPTO_STRINGS |OPENSSL_INIT_ADD_ALL_CIPHERS |OPENSSL_INIT_ADD_ALL_DIGESTS |OPENSSL_INIT_LOAD_CONFIG |OPENSSL_INIT_ASYNC |OPENSSL_INIT_NO_ATEXIT;// 将openssl库中的静态初始化函数显势调用一下, 免得在我们手工调用API时(因为有些openssl对象或变量没初始化)自动调用静态初始化函数引起多余的非我们应用产生的内存分配// 初始化函数在应用中只能调用一次.i_rc = OPENSSL_init_crypto(u64_init_opt, _ossl_init_setting);assert(1 == i_rc);
}
笔记
void my_openssl_app()
{UCHAR szBuf[16*2 - 3];int i_rc = 0;i_rc = RAND_bytes(szBuf, (int)sizeof(szBuf)); // 产生随机数, 就这一句.assert(1 == i_rc); // 一定要判断返回值是否为1(官方文档这么说)BIO_dump_fp(stdout, szBuf, sizeof(szBuf));/*! run result0000 - b8 8c c7 76 12 fb 41 e8-5b 6a 7d f0 9e 45 26 8a ...v..A.[j}..E&.0010 - 43 f8 9f 8e ef e8 49 43-d0 db 8b 87 30 C.....IC....0free map, g_mem_hook_map.size() = 0
*/
}
END
相关文章:
openssl3.2 - exp - 产生随机数
文章目录 openssl3.2 - exp - 产生随机数概述笔记END openssl3.2 - exp - 产生随机数 概述 要用到openssl产生的随机数, 查了资料. 如果用命令行产生随机数, 如下: openssl rand -hex -num 6 48bfd3a64f54单步跟进去, 看到主要就是调用了一个RAND_bytes(), 没其他了. 官方说…...
【三两波折】char *foo[]和char(*foo)[]有何不同?
1、先谈优先级 最高级别 —— 有四个,他们并不像运算符: []数组下标左到右结合()用于(表达式) or 函数名(形参表)左到右结合.读取结构体成员左到右结合->读取结构体成员(通过指针)左到右结合 第二级别…...
k8s(kubernetes)怎么查看pod服务对应哪些docker容器
Kubernetes(k8s)中的Pod是一组共享网络和存储资源的容器集合。每个Pod都包含一个或多个Docker容器,这些容器共享网络命名空间和存储卷,并在同一主机上运行。因此,可以将Pod视为一组紧密相关的Docker容器的逻辑主机&…...
[2023年]-hadoop面试真题(二)
[2023年]-hadoop面试真题(一) (北京) Maptask的个数由什么决定?(北京) 如何判定一个job的map和reduce的数量 ?(北京) MR中Shuffle过程 ?(北京) MR中处理数据流程 ?(…...
蓝桥杯备战刷题-滑动窗口
今天给大家带来的是滑动窗口的类型题,都是十分经典的。 1,无重复字符的最长子串 看例三,我们顺便来说一下子串和子序列的含义 子串是从字符串里面抽出来的一部分,不可以有间隔,顺序也不能打乱。 子序列也是从字符串里…...
LLM(十一)| Claude 3:Anthropic发布最新超越GPT-4大模型
2024年3月4日,Anthropic发布最新多模态大模型:Claude 3系列,共有Haiku、Sonnet和Opus三个版本。 Opus在研究生水平专家推理、基础数学、本科水平专家知识、代码等10个维度,超过OpenAI的GPT-4。 Haiku模型更注重效率,能…...
20-Java备忘录模式 ( Memento Pattern )
Java备忘录模式 摘要实现范例 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象 备忘录模式属于行为型模式 摘要 1. 意图 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对…...
整合生成型AI战略:从宏观思维到小步实践
“整合生成型AI战略:从宏观思维到小步实践” 在这篇文章中,我们探讨了将生成型AI和大型语言模型融入企业核心业务的战略开发方法。我们的方法基于敏捷开发原则,技术专家和数据科学家需要采纳商业思维,而执行官则需理解生成型AI和…...
个人博客系列-后端项目-用户验证(5)
介绍 创建系统管理app,用于管理系统的用户,角色,权限,登录等功能,项目中将使用django-rest_framework进行用户认证和权限解析。这里将完成用户认证 用户验证 rest_framework.authentication模块中的认证类ÿ…...
css3中nth-child属性作用及用法剖析
hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 标题:CSS3中nth-child属性作用及用法剖析 摘要:CSS3中的nth-child选择器允许我们根据元素位置来定位特定的元素…...
okHttp MediaType MIME格式详解
一、介绍 我们在做数据上传时,经常会用到Okhttp的开源库,okhttp开源库也遵循html提交的MIME数据格式。 所以我们经常会看到applicaiton/json这样的格式在传。 但是如果涉及到其他文件等就需要详细的数据格式,否则服务端无法解析 二、okHt…...
跨境电商三大趋势
跨境电商有着不断发展的三大趋势: 个性化定制:随着消费者需求的不断变化和个性化定制的潮流,跨境电商平台开始提供更多的定制化服务。消费者可以根据自己的需求选择产品的款式、材料和设计,从而获得更加个性化的产品体验。 无界销…...
【DevOps基础篇之k8s】如何通过Kubernetes CKA认证考试
【DevOps基础篇之k8s】如何通过Kubernetes CKA认证考试 目录 【DevOps基础篇之k8s】如何通过Kubernetes CKA认证考试核心概念资源监控生命周期管理Cluster维护安全认证问题排查其他推荐超级课程: Docker快速入门到精通Kubernetes入门到大师通关课这些是我在准备CK...
Mysql数据库-基本表操作
1.表操作 创建表:CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; field 表示列名 datatype 表示列的类型 character set 字符集,如果没有指定字符集ÿ…...
OceanBase社区版单节点安装搭建(Docker)
OceanBase社区版单节点安装搭建(Docker) 文章目录 OceanBase社区版单节点安装搭建(Docker)一、环境检查及Docker配置1.1 安装docker1.2 配置docker镜像源 二、OB镜像下载三、obd部署单节点数据库四、创建业务租户、数据库、表4.1 …...
Unity 关节:铰链、弹簧、固定、物理材质:摩檫力、 特效:拖尾、
组件-物理-关节:铰链(类似门轴) 自动动作、多少力可以将其断开、 弹簧可以连接另一个刚体(拖动即可) 固定一般是等待一个断裂力,造成四分五裂的效果。 物理材质 设置摩檫力,则可以创造冰面的…...
RIPEMD算法:多功能哈希算法的瑰宝
title: RIPEMD算法:多功能哈希算法的瑰宝 date: 2024/3/10 17:31:17 updated: 2024/3/10 17:31:17 tags: RIPEMD起源算法优势安全风险对比SHA优于MD5应用领域工作原理 一、RIPEMD算法的起源与历程 RIPEMD(RACE Integrity Primitives Evaluation Messag…...
如何学习ChatGPT?从入门到精通(附资料下载)
2023 ChatGPT从入门到精通视频教程(共30课).zip 学习ChatGPT需要涉及多个层面,包括理解其基本原理、掌握相关技术、以及进行实际的项目应用。以下是一些具体的学习步骤和建议: 理解ChatGPT的基本原理: 深入了解ChatGP…...
Linux安装MeterSphere并结合内网穿透实现公网远程访问本地服务
文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…...
【 React 】state和props有什么区别?
1. state 一个组件的显示形态可以由数据状态和外部参数所决定,而数据状态就是state,一般在constructor中初始化 当需要修改里面的值的状态需要通过调用setState来改变,从而达到更新组件内部数据的作用,并且重新调用组件render方法…...
终极艾尔登法环帧率解锁与游戏增强完整指南:如何彻底释放高刷新率显示器潜力
终极艾尔登法环帧率解锁与游戏增强完整指南:如何彻底释放高刷新率显示器潜力 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.…...
Python3 Selenium 自动化测试从入门到实战开发流程
📝 本章学习目标:帮助零基础 / 初级测试工程师快速掌握 Python3Selenium 自动化测试,从环境搭建到项目实战全覆盖,可直接用于接口 / UI 自动化工作落地。 一、引言:为什么 Selenium 自动化测试如此重要 在软件迭代加速…...
Phi-3-mini-128k-instruct长文本处理效果实测:128K上下文极限测试
Phi-3-mini-128k-instruct长文本处理效果实测:128K上下文极限测试 最近,关于大模型处理长文本的能力讨论越来越热。很多朋友都在问,那些号称能处理几十万甚至上百万字上下文的模型,实际用起来到底怎么样?是不是真的能…...
雷小喵实测:大学生学英语,轻松坚持不费力
很多大学生学英语都陷入死循环:单词书越背越厚、App换了又换、打卡坚持不了几天,一到四六级还是读不快、写不出、听不懂。不是你不够努力,而是学习方式太反人性。我用了近一个月雷小喵,最大感受是:它不是在逼你“学英语…...
无需前端知识!用Nanbeige 4.1-3B Streamlit UI快速搭建个人AI助手
无需前端知识!用Nanbeige 4.1-3B Streamlit UI快速搭建个人AI助手 1. 为什么选择Nanbeige Streamlit WebUI 如果你一直想搭建一个个性化的AI助手,但又担心需要学习复杂的前端开发技术,那么这个Nanbeige 4.1-3B Streamlit WebUI就是为你量身…...
3分钟掌握电脑性能优化:开源工具UXTU终极指南
3分钟掌握电脑性能优化:开源工具UXTU终极指南 【免费下载链接】Universal-x86-Tuning-Utility Unlock the full potential of your Intel/AMD based device. 项目地址: https://gitcode.com/gh_mirrors/un/Universal-x86-Tuning-Utility 你是否曾经感觉自己的…...
百度网盘提取码智能获取:3秒解锁资源的完整指南
百度网盘提取码智能获取:3秒解锁资源的完整指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘分享链接的提取码而烦恼吗?每次遇到需要密码的资源,都要花费大量时间在各种网…...
别再踩坑了!SQL Server数据类型那点事儿,看懂这篇少背三个锅囱
从0构建WAV文件:读懂计算机文件的本质 虽然接触计算机有一段时间了,但是我的视野一直局限于一个较小的范围之内,往往只能看到于算法竞赛相关的内容,计算机各种文件在我看来十分复杂,认为构建他们并能达到目的是一件困难…...
Pixel Aurora Engine显存优化:12GB显存稳定生成1024x1024像素画技巧
Pixel Aurora Engine显存优化:12GB显存稳定生成1024x1024像素画技巧 1. 为什么需要显存优化 1.1 高分辨率像素画的显存挑战 生成1024x1024分辨率的像素艺术画作时,显存占用会急剧增加。传统的扩散模型在生成高分辨率图像时,显存消耗往往超…...
弱网测试工具全攻略:从原理到实战应用
1. 弱网测试的核心原理与价值 第一次在地铁里刷不出健康码时,我才真正理解弱网测试的重要性。当时看着手机屏幕上不断转圈的小图标,后背都急出了汗。这种真实场景下的网络波动,正是我们需要在实验室里模拟复现的关键场景。 弱网本质上是指网络…...
