【发布时间】:2014-06-06 00:02:07
【问题描述】:
“数据大于 mod len”错误消息是什么意思?我在尝试使用 php 的 openssl_private_decrypt 解密数据时遇到了这个问题。如何解决这个问题?一直在网上搜索几个小时,却一无所获。
【问题讨论】:
标签: encryption openssl private-key
“数据大于 mod len”错误消息是什么意思?我在尝试使用 php 的 openssl_private_decrypt 解密数据时遇到了这个问题。如何解决这个问题?一直在网上搜索几个小时,却一无所获。
【问题讨论】:
标签: encryption openssl private-key
你也可以试试openssl enc -in cipherTextFile.base64 -out binaryTextFile.bin -d -a。当我在尝试解密时遇到此错误时,这对我有用。然后我可以使用openssl rsautl -decrypt -in binaryTextFile.bin -out plainTextFile.txt -inkey my-private-key.pem 解密而不会失败。
【讨论】:
ciphertext 参数是什么意思?
ciphertext 指的是base64 编码文件。这是我在-in 参数中传递的内容。我已经更新了我的答案,以使文件路径应该作为参数传递的位置更加清晰。这有帮助吗?
如果您遇到此解密错误:RSA_EAY_PRIVATE_DECRYPT:data greater than mod len 在解密文件之前尝试此命令:
cat yourEncryptedFile| base64 -D > yourEncryptedRawFile
【讨论】:
base64 -d还是base64 --decode?
-D 为我工作,因为我在 macOS 平台上工作。命令变化取决于您的操作系统。有更多关于here的信息,问候!
非对称 RSA 密钥只能加密/解密有限长度的数据,即RFC3447 中定义的 RSAES-PKCS1-v1_5 加密方案可以对长度为 k - 11 个八位字节的消息进行操作(k 是 RSA 模数的八位字节长度) 因此,如果您使用 2048 位 RSA 密钥,则要加密的纯数据的最大长度为 245 字节。
【讨论】:
RSA_size 并不是很有用。我在 OpenSSL 用户列表上询问:RSA and max preimage size?.