我正在使用RSA算法进行共享密钥加密/解密。我正在使用开放的ssl库和c语言.RSA_size()返回256字节。密钥(数据到enrypt)大小超过256字节但小于500字节。用于加密的RSA密钥大小为1024.keypair是使用openssl库生成的。 如果要加密的数据小于或等于245字节,加密工作正常(因为填充)。否则我必须打破数据(不确定它是否正常,因为我试图交换共享密钥)有没有其他方法来增加在调用rsa_public_encrypt之前,RSA_size.my代码不会调用RAND_seed()(不确定要传递的是哪个argment)。任何帮助表示赞赏。
答案 0 :(得分:0)
您可以将数据分成块,也可以使用“密封”/“打开”的OpenSSL函数。
基本上他们所做的是生成一组随机密钥,使用公钥加密密钥,然后使用这些密钥加密您想要的任何内容。这样你不仅限于特定的大小,解密也不会太慢(你只使用RSA解密随机密钥,其余的使用对称加密来完成,因此速度要快得多)。
我建议您查看EVP_SealInit和EVP_OpenInit。