我有一个15KB的加密文件(包含一个长的base64字符串)和一个rsa私钥文件。我必须使用私钥解密此文件,但我在尝试使用openssl时收到错误。
这是我试过的命令:
openssl rsautl -decrypt -inkey ./id_rsa -in encrypted_file.enc -out output.bin
我收到的错误如下:
RSA操作错误140360486789312:错误:0406506C:rsa 例程:rsa_ossl_private_decrypt:大于mod的数据 LEN:../加密/ RSA / rsa_ossl.c:391:
我很高兴能得到帮助,如何正确行事。
提前致谢。
答案 0 :(得分:0)
RSA不是为加密(大)数据而设计的,使用AES等对称加密来加密数据。
如果您确实需要非对称加密,即单独的加密和解密密钥,请使用混合加密。混合加密创建一个Ranson对称密钥,使用对称加密对数据进行加密,使用非对称加密对该对称密钥进行加密,并将两者打包在一起。
可加密的数据大小小于密钥大小减去填充。对RSA加密15KB文件需要RSA密钥> 17,000位,这是目前不合理的。非对称加密(RSA)也比对称加密(AES)慢几个数量级。
但有一个问题:您是否真的需要非对称加密,对称加密是否足以满足您的需求?