如何使用 PEM_Write_RSA_PrivateKey 加密 RSA 私钥并将其写入文件

How to encrypt and write RSA private key to file with PEM_Write_RSA_PrivateKey

函数:

int PEM_write_RSAPrivateKey(FILE *fp, RSA *x, const EVP_CIPHER *enc,
                                        unsigned char *kstr, int klen,
                                        pem_password_cb *cb, void *u);

我调用函数的方式:

PEM_write_RSAPrivateKey(pFile, pRSA,NULL,0,NULL,NULL,(void*)passphrase);

openssl的文档说最后一个参数是passphrase,但是我发现输出文件中的context没有加密。

显然,因为您将密码设置为 NULL,所以您不会获得任何加密。

选择类似的东西:

PEM_write_RSAPrivateKey(pFile,pRSA,EVP_des_ede3_cbc(),passphrase, passphraseLength,NULL,NULL);

当然可以随意更改密码,更好的选择是使用 AES-128-CBC,但这取决于您的特定目标和性能要求。

不要忘记用类似的东西初始化 OpenSSL 库 OpenSSL_add_all_algorithms()