gpt4 book ai didi

c - 如何使用 RSA 加密/解密长输入消息? [OpenSSL, C]

转载 作者:太空狗 更新时间:2023-10-29 17:08:14 27 4
gpt4 key购买 nike

我写了一个简单的测试程序来加密/解密消息。

我有一个 key 长度:

int keylength = 1024;//也可以是 2048, 4096

和最大输入长度:

int maxlen = (keylength/8)-11;

而且我知道我的输入大小应该小于 maxlen,如下所示:

if(insize >= maxlen)
printf("cannot encrypt/decrypt!\n");

我的问题很简单 - 是否可以(如果可以,我该怎么做)使用比 maxlen 更长的 RSA 消息进行加密/解密?

主要代码也很简单,但仅在 insize < maxlen: 时有效:

   if((encBytes=RSA_public_encrypt(strlen(buff1)+1, buff1, buff2, keypair, RSA_PKCS1_PADDING)) == -1)
{
printf("error\n");
}

if((decBytes=RSA_private_decrypt(encBytes, buff2, buff3, keypair, RSA_PKCS1_PADDING)) == -1)
{
printf("error\n");
}

最佳答案

加密长消息需要组合方案 - RSA 算法加密 session key (即 AES key ),数据本身用该 key 加密。我建议不要发明另一辆自行车并使用完善的方案,即 PKCS#7/CMS 或 OpenPGP,具体取决于您的需要。

关于c - 如何使用 RSA 加密/解密长输入消息? [OpenSSL, C],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19344122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com