Openssl"数据大于mod len"

时间:2014-04-21 20:37:55

标签: encryption openssl private-key

“数据大于mod len”错误消息是什么意思?我在尝试使用php的openssl_private_decrypt解密数据时遇到过这种情况。如何解决这个问题呢?在网上搜索时间,没到任何地方。

3 个答案:

答案 0 :(得分:12)

非对称RSA密钥只能对有限长度的数据进行加密/解密,即RFC3447中定义的RSAES-PKCS1-v1_5加密方案可以对长度高达k-11个八位字节的消息进行操作(k是八位字节的长度) RSA模数)所以如果你使用2048位RSA密钥,那么要加密的普通数据的最大长度是245字节。

答案 1 :(得分:5)

如果您遇到此解密错误:RSA_EAY_PRIVATE_DECRYPT:data greater than mod len在解密文件之前尝试此命令:

cat yourEncryptedFile| base64 -D > yourEncryptedRawFile

答案 2 :(得分:0)

您也可以尝试openssl enc -in cipherTextFile.base64 -out binaryTextFile.bin -d -a。当我尝试解密时遇到此错误时,这就是对我有用的方法。这样,我就可以使用openssl rsautl -decrypt -in binaryTextFile.bin -out plainTextFile.txt -inkey my-private-key.pem进行解密了。