如何使用 OpenSSL EVP 例程进行 RSA 公钥加密?

问题描述 投票:0回答:1

我正在使用 OpenSSL 中的 EVP 高级函数。我还没有在网上找到任何示例来展示如何使用这些函数(例如

EVP_EncryptInit_ex()
EVP_EncryptUpdate()
EVP_EncryptFinal_ex()
)来使用 RSA 公钥加密数据。具体来说,我没有看到与 RSA 匹配的
EVP_CIPHER
类型,类似于您在 AES 中看到的类似:
const EVP_CIPHER *EVP_aes_128_cbc(void);
中的
evp.h
。我认为需要 RSA 来初始化 EVP 以使用该方法进行加密。

任何人都可以帮助我了解如何使用 RSA 现有密钥通过 OpenSSL 的 EVP 例程来加密数据吗?例子会非常有帮助。

c++ c encryption openssl rsa
1个回答
5
投票

要进行非对称加密,您需要使用与对称加密不同的 EVP 例程。特别是请参阅 EVP_PKEY_encrypt() 函数。手册页在这里,其中包含一个示例。

https://www.openssl.org/docs/man3.0/man3/EVP_PKEY_encrypt.html

编辑:

较新版本的 OpenSSL 还有一个演示文件,显示 RSA 加密:

https://github.com/openssl/openssl/blob/master/demos/encrypt/rsa_encrypt.c

© www.soinside.com 2019 - 2024. All rights reserved.