gpt4 book ai didi

encryption - OpenSSL 解密错误 - 填充与原始

转载 作者:行者123 更新时间:2023-12-03 06:57:30 24 4
gpt4 key购买 nike

我收到了来自合作伙伴的加密文件及其 key 。 key 本身已使用我们的数字证书公钥进行加密。

当我尝试使用以下内容和我们的私钥解密 key 时,出现填充错误,如下所示:

C:\openssl rsautl -decrypt -in xxxx_Key -inkey xxxxprivatekey.pem -hexdump -out aeskey.txt
Loading 'screen' into random state - done
RSA operation error
5612:error:0407109F:rsa routines:RSA_padding_check_PKCS1_type_2:pkcs decoding er
ror:.\crypto\rsa\rsa_pk1.c:273:
5612:error:04065072:rsa routines:RSA_EAY_PRIVATE_DECRYPT:padding check failed:.\
crypto\rsa\rsa_eay.c:602:

如果我将 -Raw 开关添加到解密中,它似乎可以工作,但生成的十六进制转储比我预期的要大得多。任何人都可以提供有关这里可能发生的情况的建议吗?谢谢!

最佳答案

我的猜测是您使用错误的私钥进行解密或者您的密文已损坏。

在 RSA 中,填充用于将加密消息的长度扩展为与模数相同的大小(因此 1024 位 RSA 将消息填充为 1024 位)。 PKCS1 类型 2 是(我相信)PKCS#1 v1.5 的另一个名称,它添加了填充 0x00 || 0x02 || (随机字节)|| 0x00 到消息的开头。解密时完成的第一个检查是消息的开头是0x00 0x02。然后,直到(包括第二个 0x00)的所有字节都被剥离,产生原始消息。如果开头不是 0x00 0x02 或没有第二个 0x00 字节,则存在填充错误。

如果您忽略填充检查,您很可能会收到一条与 RSA 模数大小相同的消息,因为没有删除任何填充。考虑到大多数 RSA 模数至少为 1024 位,这将比 AES key 大得多。

关于encryption - OpenSSL 解密错误 - 填充与原始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32470864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com