[英]Openssl: Verify RSA encrypted data with public key in certificate
我在一個名為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
但是,它給了我以下輸出:
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是否格式正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.