Openssl:使用证书中的公钥验证RSA加密数据

Openssl:使用证书中的公钥验证RSA加密数据,openssl,rsa,encryption,Openssl,Rsa,Encryption,我在一个名为digital_signatue1.txt的文件中有一个base64编码的数字签名: LE3v7aHDOtCYEWrURYfxrq4tAx5zg0siBK0yBdYJTxWTFw/tLoEOcT0JZPRy8RMY bkCuLClsdVnjYhyfots3RyVl4uaSd2gpEnIN6YCo/DBCBltfWri3rFwtSeV/Gm9K 4+fMNiziTYjUWFS+1v1rbFxv4MbsRFEfYEtU0+xVHN8= 要对该数字签名进行base64解码,我使用了以下命

我在一个名为digital_signatue1.txt的文件中有一个base64编码的数字签名:

LE3v7aHDOtCYEWrURYfxrq4tAx5zg0siBK0yBdYJTxWTFw/tLoEOcT0JZPRy8RMY
bkCuLClsdVnjYhyfots3RyVl4uaSd2gpEnIN6YCo/DBCBltfWri3rFwtSeV/Gm9K
4+fMNiziTYjUWFS+1v1rbFxv4MbsRFEfYEtU0+xVHN8=
要对该数字签名进行base64解码,我使用了以下命令:

openssl base64 -d -in digital_signature1.txt -out digital_signature2.txt
openssl rsautl -verify -inkey sender-cert.pem -certin -in digital_signature2.txt
然后,为了验证数字签名是否由发件人签名,我使用了以下命令:

openssl base64 -d -in digital_signature1.txt -out digital_signature2.txt
openssl rsautl -verify -inkey sender-cert.pem -certin -in digital_signature2.txt
但是,它给了我以下输出:

Loading 'screen' into random state - done
RSA operation error
4080:error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not     01:./crypto/rsa/rsa_pk1.c:100:
4080:error:04067072:rsa routines:RSA_EAY_PUBLIC_DECRYPT:padding check     failed:./crypto/rsa/rsa_eay.c:699:

你知道我做错了什么吗?

根据签名验证理论,它要求: 1.已签名的数据。 2.数据签名 3.公钥

在这里,您有签名和公钥,但我怀疑数据在哪里?
数据必须位于使用rsautl签名的digital_signature2.txt中。请检查digital_signature2.txt的格式是否正确。

我终于找到了答案。事实证明,我并没有使用发件人的实际证书,而是在“-inkey”选项之后使用了其他人的证书。哎呀!