用openssl的 RSA_public_encrypt 函数加密一串长度大于128字节的明文,请列出代码
时间: 2023-03-14 07:03:30 浏览: 130
openssl中函数RSA_public_encrypt的使用案例
4星 · 用户满意度95%
示例代码:#include <stdio.h>
#include <string.h>
#include <openssl/rsa.h>
#include <openssl/pem.h>int main()
{
char plaintext[128] = "要加密的明文";
unsigned char encrypted[256];
int encrypted_length; //RSA密钥相关
RSA *rsa;
FILE *file;
int rsa_len; //从文件中读取RSA公钥
file = fopen("public.pem", "rb");
if(file == NULL)
{
printf("不能打开文件!");
return -1;
} //从RSA公钥PEM文件创建RSA结构
rsa = PEM_read_RSA_PUBKEY(file, NULL, NULL, NULL); //获取RSA结构中的长度
rsa_len = RSA_size(rsa); //用RSA_public_encrypt函数加密明文
encrypted_length = RSA_public_encrypt(strlen(plaintext), (unsigned char*)plaintext, encrypted, rsa, RSA_PKCS1_PADDING); if(encrypted_length == -1)
{
printf("加密失败!");
return -1;
} //关闭文件
fclose(file); return 0;
}
阅读全文