Mr.*_*oor 2 encryption openssl cryptography rsa
RSA_size(rsa)返回模数,在我的应用程序中等于256.我用RSA_PKCS1_OAEP_PADDING选项加密数据,所以发送的输入缓冲区的最大长度RSA_public_encrypt()是256 - 41 = 215
在某些情况下,我的输入缓冲区的长度可能会超过215的限制,我需要调用RSA_public_encrypt()multitimes.
我的问题是关于的回报价值RSA_public_encrypt().
从我的测试中返回值是256(等于RSA_size(rsa)),文档还说:
RSA_public_encrypt()返回加密数据的大小(即RSA_size(rsa)).
我只是想确保返回值只有两种可能性 RSA_public_encrypt().
-1(错误)或模数(成功),没有其他可能性,是吗?我很好奇,因为我需要划分加密缓冲区并调用RSA_private_decrypt()每个块.如果每个加密缓冲区RSA_public_encrypt相同,那么我不需要为每个缓冲区存储大小.
小智 11
对于所有当前已知的PKCS#1加密模式,RSA_public_encrypt()的(正)返回将始终与RSA_size(rsa)相同.
简而言之:您当前的假设是正确的.
实际上:如果您的数据大于RSA_size(rsa)并且您将其拆分为块,则应该考虑使用随机对称密钥加密数据并使用RSA_public_key()加密该密钥.RSA公钥加密并不适用于较大的数据块.
加密大于RSA_size(rsa)的事物的最佳方法 - XX(其中XX取决于所使用的PKCS#1模式):
另一方面:
| 归档时间: |
|
| 查看次数: |
5457 次 |
| 最近记录: |