使用openssl dgst -verify时始终返回false

时间:2019-04-03 03:43:13

标签: openssl

我想使用openssl dgst来验证第三方提供的消息和签名数据是否正确。

消息和符号数据均经过base64编码。

根据它们的规范,我必须首先将消息加密为sha256摘要,然后将base64解码符号数据,然后再进行公共密钥解密。最后,我可以通过比较sha256摘要和解密的符号数据来进行验证。

这是我从其证书中提取的公钥。

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxTRl9FnUNrnXNVFRl5gC
2Fo/rdr/x0T/dyoCuCmJKMO9tijgdS8/NNOyKRyswtq1gGSmAEKqcwqV6/cn8u8N
1QD/vO8jXErUwixVgypLyq6qNMz6qot+aabRwJuILFZbQ/lQQiCJA3VrEMgl8yFT
OOQNVvEovWbeLuaqJghJH4YfhmlC29stlb6oLmUoHmB0l1MgUqcxtmjwj+Q3a3R8
mAIKRpXnCYD+dLpnHwegcPpPbRBkmRFaM0M58msOelqayNrbTKwlM98xSlS+FAzQ
gyWWmiCMtxK+P1lTgQRWyOF2rp3ucc16hwlq0YvV5fCD5HHwp/46ftLKHY2szVHe
HQIDAQAB
-----END PUBLIC KEY-----

以下是数据:

eyJtZXNzYWdlSWQiOiJINlIwMDA1MDAxMDAiLCJmcHNJZGVudGlmaWVyIjoiMTk5NDA3OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCJ0cmFuc2FjdGlvbklkIjoiMTIxOTAzMjdGMDA0ODc1NzQ4ICAgICAgICAgICAgICAgICAiLCJlbmRUb0VuZElkIjoiMDAtMTkwMzI3Q1hBMjIyMTExMUhLNzc5MyAgICAgICAgICAiLCJ0eG5DdXIiOiJIS0QiLCJ0eG5BbXQiOiIgICAgICAgIDEwMS4wMCIsInR4bkRhdGVUaW1lIjoiMjAyMjA4MDEgMTg6MDQ6MzEifQ

以下是标志数据:

XYuv2MvzWfzc0dmB_mVbKdlHZC26AiZdllFEQFhYMmAhvhe7AOOWQ8xrEYeca0D4UMPdHGfCPY0qNVGa0jNUvIwK0qJ6V6Le6dhkXVk5q0o0Q3Is6C3mk4Q6CqBdGK5yAdrYLmNG5v6fA2ifg_YvcVnavwFawvSue-fp7yyAyNZtdyeC2j3mMND0P91NQ2yHHbGCRJWFxzsqz4CdhTPrLGPiqZAdJejfz1irMLuiuUjTKSazsqYAJhXslz9xXd9hyZsQdCTrGT4MYQjTHoiQAoIEqrE5rhDI3ZifhaYFg1fRrGXagw5s5naelCks6ypu95YPmuEqG0QJl2YoQlwMpw

我尝试使用

base64 --decode sigfile > decodedsigfile

首先解码符号数据。

然后,使用

openssl dgst -sha256 -verify <public key> -signature decodedsigfile datafile

进行验证。

我希望这是真的。但是,输出始终为false。

我需要一些帮助,让我知道哪一部分不对。

(假设公钥正确)

0 个答案:

没有答案