openssl生成pem格式公钥私钥文件并实现RSA加解密

使用openssl生成pem格式私钥和公钥

  • 生成公钥和私钥

    1
    2
    openssl生成私钥命令: openssl genrsa -out rsa_private_key.pem 1024
    openssl生成公钥命令: openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

    此时可以看到 rsa_private_key.pem 和 rsa_public_key.pem 两个文件。这时候的私钥是不能直接使用的,需要进行 pkcs8 编码。

  • 对私钥进行pkcs8编码

    1
    openssl的pkcs8编码命令:openssl pkcs8 -topk8 -in rsa_private_key.pem -out  pkcs8_rsa_private_key.pem -nocrypt

此时可以看到 pkcs8_rsa_private_key.pem 文件 ,可用的密钥对已经生成好了,私钥使用pkcs8_rsa_private_key.pem,公钥采用rsa_public_key.pem。

PRNG not seeded 解决方法

此问题是由于随机种子初始化问题导致的,需要在合适的位置添加以下随机代码,其中rnd_seed的内容可以设置任意字符串内容

1
2
3
static const char rnd_seed[] =                                                      
"string to make the random number generator think it has entropy";
RAND_seed(rnd_seed, sizeof(rnd_seed));

参考


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!