我编写了一个简单的测试程序来加密/解密消息。
我有一个keylength
:
int keylength = 1024; // it can also be 2048, 4096
和最大输入长度:
int maxlen = (keylength/8)-11;
而且我知道我的输入大小应该小于 maxlen,如下所示:
if(insize >= maxlen)
printf("cannot encrypt/decrypt!\n");
我的问题很简单 - 是否有可能(如果是,我该怎么做)使用 RSA 消息进行加密/解密比maxlen
?
主要代码也非常简单,但仅在 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");
}