在使用 OpenSSL 的 EVP_PKEY_keygen 之前,我是否需要播种任何随机数生成器?

2024-04-01

在 OpenSSL Wiki 页面上称为EVP 密钥和参数生成 https://wiki.openssl.org/index.php/EVP_Key_and_Parameter_Generation它规定如下:

由于这些函数使用随机数,因此您应该确保随机数生成器的种子正确

但无处可去EVP_PKEY_keygen https://www.openssl.org/docs/crypto/EVP_PKEY_keygen.html它是否提到播种随机数生成器。它仅讨论用于生成密钥的非 EVP 函数的低级文档页面。

我也进行了搜索,但到处都没有提到使用 EVP 功能时的播种。

所以我的问题是;我可以假设播种是在更高级别的 EVP 职能内部为我完成的吗?

如果我确实需要这样做,那么我必须查看哪些功能?


但无处可去https://www.openssl.org/docs/crypto/EVP_PKEY_keygen.html https://www.openssl.org/docs/crypto/EVP_PKEY_keygen.html它提到了随机数生成器的种子......

请参阅 OpenSSL 维基页面随机数 http://wiki.openssl.org/index.php/Random_Numbers。它会带你详细地了解它。


...使用 EVP 功能时没有提及播种

EVP 函数使用库中使用的任何生成器。它可能是md_rand或 FIPS AES/CTR 生成器。为 EVP 函数获取随机数没有什么特别的(与其他函数相反)。


我可以假设播种是在更高级别的 EVP 职能内部为我完成的吗?

Yes, if您自己没有为生成器播种。如果您为生成器播种并且有足够的熵,那么它不会自动播种。

您应该避免让生成器自行自动播种。请参阅 OpenSSL 维基页面随机数 http://wiki.openssl.org/index.php/Random_Numbers了解详情。

使用 EVP 接口时,对生成器进行播种/自动播种没有什么特别的。无论你做什么都适用于一切。


如果我确实需要这样做,那么我必须查看哪些功能?

OpenSSL 维基页面随机数 http://wiki.openssl.org/index.php/Random_Numbers提供更多详细信息,但您应该执行以下操作:

int rc = RAND_load_file("/dev/urandom", 32);
if(rc != 32) {
    /* RAND_load_file failed */
}

/* OK to proceed */

您想避免直接调用RAND_poll,并且您想避免自动播种(这会调用RAND_poll内部)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在使用 OpenSSL 的 EVP_PKEY_keygen 之前,我是否需要播种任何随机数生成器? 的相关文章

  • 如何在 PHP 中解密密码哈希?

    我需要解密密码 密码已加密password hash功能 password examplepassword crypted password hash password PASSWORD DEFAULT 现在 我们假设 crypted存储在
  • openssl_pkey_get_public 未打开公钥,“无起始行”错误

    当生成公钥然后用函数读取它时openssl pkey get public publicKeyResource bool false 和消息 错误 0906D06C PEM 例程 PEM read bio 无起始行 privateKey o
  • 可以混淆/加密 SharedPreferences 文件吗?

    因此 我对混淆应用程序的 SharedPreferences xml 文件很感兴趣 就像 Android LVL 混淆其许可证 cahce 数据一样 这是可以想象的吗 大量的谷歌挖掘几乎没有产生任何可能解决我的问题的结果 我当然不是密码学家
  • 在 MySQL 表中存储用户密码的最佳 PHP 哈希方法?

    我已经阅读 Stack Overflow 问题大约 15 分钟了 每一个问题似乎都与我之前读到的问题相矛盾 Bcrypt SHA1 MD5 等 我目前对我的密码进行 MD5 但我想让我的数据库在发生泄露时更加安全 我知道这个问题已经被问了一
  • 使用 SSL 设置 .Net IBM.XMS 客户端

    我必须创建一个客户端来侦听队列上的消息 正在使用 SSL 我正在 dot net 中进行开发 我浏览了数百页的文档和论坛 找到了一些清晰简洁的内容 但看起来事实并非如此 我有一个 jks 并且我能够 telnet 到正在发布队列的服务器 下
  • 需要使用 openssl 加密和解密文件的示例 C 代码

    我正在用 Linux C 编写代码 我需要使用以下命令来加密和解密文件 openssl 目前 我使用系统命令 des3 e nosalt k 0123456789012345 in inp file out out file 进行加密 使用
  • 如何将pgp私钥传输到另一台计算机? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 I read 本文 http www robertsosinski com 2008 02 18 working with pgp and mac o
  • 使用 AesManaged“填充无效且无法删除”

    我正在尝试使用 AesManaged 进行简单的加密 解密 但在尝试关闭解密流时不断出现异常 这里的字符串被正确加密和解 密 然后在 Console WriteLine 打印正确的字符串后 我收到 CryptographicExceptio
  • Java 9:AES-GCM 性能

    我进行了一个简单的测试来测量AES GCM https en wikipedia org wiki Galois Counter Mode表现在Java 9 通过在循环中加密字节缓冲区 结果有些令人困惑 本机 硬件 加速似乎有效 但并非总是
  • SSL如何使用对称和非对称加密?如何管理一台主机上多个站点的认证? [复制]

    这个问题在这里已经有答案了 首先 引用微软TechNet的一些内容管理 Microsoft 证书服务和 SSL http technet microsoft com en us library bb727098 aspx 回顾一下 安全 S
  • OpenSSL DH 密钥太小错误

    我正在尝试使用简单的 PERL 脚本连接到封闭的服务器 空调 usr bin perl use 5 10 1 use warnings use strict use IO Socket SSL use IO Socket SSL qw de
  • 无论如何要解密加密的sql server存储过程吗?

    我有几个 ms sql server 2000 存储过程 很久以前就被前雇员加密了 一切都很好 直到我们需要稍微改变一下 有什么方法可以检索源代码吗 或者重写是唯一的选择 多谢 或者免费 谷歌是你的朋友 http searchsqlserv
  • Keystore getEntry 在 Android 9 上返回 NULL

    c我已对存储在 Android 密钥库中的登录密码进行了加密和解密 在 Android 9 上 我观察到应用程序在尝试解密密码时崩溃 我无法重现它 但拥有 Pixel 3 的用户是崩溃的设备之一 下面是我如何从密钥库解密密码 private
  • 为arm64或arm7s编译OpenSSL FIPS功能库时出现未知的cpu类型

    我可以成功 至少没有警告并生成 a 文件 针对 arm7 x86 64 和 i386 进行编译 当我编译arm64时 我得到Unknown cpu type 100000c no adjustments made 当我编译arm7s时 我得
  • 在 ASP.NET 中加密 cookie

    我想在 ASP NET 中加密 cookie 我已关注本文的方法 http www codeproject com KB web security HttpSecureCookie aspx 但它有一个缺点 那就是在内部方法上使用反射 这导
  • 为什么密码错误会导致“填充无效且无法删除”?

    我需要一些简单的字符串加密 所以我编写了以下代码 有很多 灵感 来自here http www codeproject com KB security DotNetCrypto aspx create and initialize a cr
  • 在 OpenSSL 中使用零填充?

    System Security Cryptography TripleDES 允许我使用零填充 如下所示 static TripleDES CreateTripleDES byte key byte iv TripleDES des new
  • 无法使用 OpenSSL 验证服务器证书

    我已经使用 OpenSSL 编写了一个 SOAP 客户端 在 Ubuntu 12 04 上用 C 编写 但它目前无需检查服务器安全证书即可运行 这是我用来设置连接和检查证书的函数 bool bInitialiseSSL SSL CTX ct
  • Android 中的 AES 解密速度慢

    我尝试使用 AES 128 位密钥解密 4 2 MB dcf 文件 但解密需要 33 秒 在函数 cipher doFinal data 上 这正常吗 这是一个代码片段 long start System currentTimeMillis
  • 数据加密

    存储大量信用卡信息的数据库是我们刚刚完成的系统中不可避免的一部分 不过 我想要的是卡号的最终安全性 我们可以设置一种加密和解密机制 但我们自己无法解密任何给定的号码 我所追求的是一种即使在数据库级别也能保护这些信息的方法 这样任何人都无法进

随机推荐

  • 在 Heroku 上拉入经过身份验证的 git 存储库

    我一直在尝试在 Heroku 上引入一些经过身份验证的 git 存储库 但遇到了一些问题 理想情况下 我希望能够使用令牌解决方案在这里 https github com blog 1270 easier builds and deploym
  • 外部库会使应用程序变慢吗?

    我正在构建一个从网页中抓取信息的应用程序 为此 我选择使用一个名为的 html scraperJsoup http jsoup org 因为它使用起来非常简单 Jsoup 还依赖于 Apache Commons Lang 库 它们总计 38
  • python:如何根据值合并字典列表中的字典

    我有一个字典列表 其中每个字典由 3 个键组成 名称 url 和位置 在整个字典中 只有 name 的值可以相同 并且 url 和 location 在整个列表中始终是不同的值 Example name A1 url B1 location
  • BaseGameActivity.runOnUpdateThread() 与 Entity.registerUpdateHandler()

    如果我执行有什么区别Runnable with runOnUpdateThread 或者我将更新处理程序注册到实体中并用它执行代码 我想删除一个Sprite从场景Sprite detachSelf 在这种情况下 教程说必须在更新线程中调用此
  • 无法从 START_OBJECT 令牌中反序列化 java.lang.String 实例

    我遇到了一个问题 我的可部署 jar 遇到了异常 而当我在 IntelliJ 本地运行此异常时 该异常不会发生 例外 Receiving an event id 2 socket 0c317829 69bf 43d6 b598 7c0c55
  • 为什么 linter 会选择无用的转义字符?

    转义字符串 模板文字和正则表达式中的非特殊字符没有任何效果 Source https eslint org docs rules no useless escape https eslint org docs rules no useles
  • iOS 启动设置 -> 限制 URL 方案

    我最近发现了一个很棒的iOS5自定义设置URL方案 这可以在这个伟大的website http handleopenurl com scheme apple settings app 我发现这很有效 将用户从我的应用程序引导到 设置 应用程
  • 在 UITableViewController 中处理空 UITableView

    我有一个 UITableViewController 其中填充了一些数据 如果数据返回为空 则显然表是空的 使用什么适当的方法来处理这种情况并放置类似 无可用数据 的 UILabel 之类的内容 我一直在使用 NSString tableV
  • 在 PHP 中嵌入 HTML 中实现内联三元运算符

    我是 PHP 的学习者 我有一个正在实现 HTML5 代码的代码 我想做的是将内联三元运算符嵌入到我的占位符中 我已关注此链接 但没有一个有相同的问题陈述 使用三元运算符放置内联样式php https stackoverflow com q
  • 将参数传递给 WebClient.DownloadFileCompleted 事件

    我正在使用WebClient DownloadFileAsync 方法 并想知道如何将参数传递给WebClient DownloadFileCompleted事件 或任何其他与此相关的事件 并在调用的方法中使用它 我的代码 public c
  • 通过 PHP 发出 HTTPS 请求并获取响应

    我想通过 PHP 向服务器发出 HTTPS 请求并获取响应 与此 ruby 代码类似的东西 http Net HTTP new www example com 443 http use ssl true path uri resp data
  • htaccess 防止热链接也可以防止外部链接

    我在 htaccess 文件中添加了这段代码 以防止图像和 pdf 文件的热链接 但它也会阻止正常的外部链接工作 我的 htaccess 文件 RewriteEngine On RewriteCond HTTP REFERER Rewrit
  • 有没有办法将类字段标记为仅反序列化而不序列化?

    听起来很奇怪 但这正是我想要的 因为我正在使用名为 Project 的数据结构 该数据结构被序列化为保存文件 我希望能够使用已弃用的字段对旧版本的保存文件进行反序列化 然后仅使用当前使用的字段对其进行重新序列化 问题是我想在重新序列化结构时
  • Servlet 3.0 的错误页面

    In the web xml文件中 我尝试指定一个错误页面 如下所示
  • 如何在 Hyper 处理程序之间共享 HashMap?

    我正在尝试通过使用 Hyper 0 10 实现一个简单的内存中 URL 缩短器来学习 Rust 我遇到了一个问题 我认为是由于尝试关闭可变的HashMap在我的处理程序中 fn post mut req Request mut res Re
  • stdin、stdout 和 stderr 是文件吗?

    有人告诉我 每当运行 C 程序时 都会打开三个文件 STDIN STDOUT 和 STDERR 他在支持中给出了此链接 http tldp org LDP abs html io redirection html http tldp org
  • 滤波器相关矩阵 R

    我在尝试从相关矩阵中提取数据时遇到了一些困难 我希望提取高于 0 8 且低于 0 99 的值 因为我想排除恰好为 1 的两只股票的相关性 这是我的代码 Test load the packages library corrr library
  • SQL Server 2008 中单个列上的多个外键约束

    我有两个表 TableA 和 TableB 现在 TableA 有 2 列 ID 和 Name TableB 有 3 列 ID Name 和 TableAID 现在有一个来自 TableA ID TableB TableAID 的外键约束
  • Apple 推送通知提供商的设备令牌

    如果我是 Apple 推送通知 提供商 multipleiOS 应用程序可以对多个应用程序使用相同的设备令牌吗 我知道每个应用程序都需要唯一的 SSL 证书 但是我对设备令牌感到困惑 Example 我有两个应用程序 A 和 B 我想为这两
  • 在使用 OpenSSL 的 EVP_PKEY_keygen 之前,我是否需要播种任何随机数生成器?

    在 OpenSSL Wiki 页面上称为EVP 密钥和参数生成 https wiki openssl org index php EVP Key and Parameter Generation它规定如下 由于这些函数使用随机数 因此您应该