c - 如何使用 RSA_generate_key 始终生成不同的公钥

标签 c unix openssl rsa

我在使用 RSA_generate_key 时遇到问题。该方法在两个不同的 C 源中生成相同的公钥。因此,这两个源是应用程序的客户端和服务器,在 localhost 上编译并运行(目前)。如何在每次调用 RSA_generate_key 时生成不同的 key 对?

最佳答案

来自 RSA_generatey key 手册:

The pseudo-random number generator must be seeded prior to calling RSA_generate_key().

您需要使用启动种子调用 RAND_add,如果在 Linux 中,如果您可以等待足够的熵,则可以从/dev/random 读取种子,或者如果您需要快速响应,则可以从/dev/urandom 读取种子。

您可以在这里了解更多信息: http://research.swtch.com/openssl

关于c - 如何使用 RSA_generate_key 始终生成不同的公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12089536/

相关文章:

unix - 如何使用unix工具替换文件的最后一两个字符

linux - 应该为每个应用程序进行 FIPS 自测试吗?

javascript - 在客户端使用私钥签署数据(javascript)

c++ - 这个循环有什么问题吗?

c - STEVE 的特征值计算

linux - 比较不同主机中相同目录的shell脚本

Openssl Asn1parse 无法正确提取数据

c - 单节点列表练习(无法正常工作)

c - 弗莱彻校验和给出不同的值

unix - 如何使用 maven 解压缩符号链接(symbolic link)?