我目前正在构建一个应该处理Alexa语音意图的that服务。我从Alexa获得的HTTP请求必须通过检查签名来验证,如文档中所描述的(节选见下文)。
我似乎正确地解密了在请求中发送的签名,并且似乎正确地计算了请求体的签名。但是它们不同--但不是完全不同(这将提示计算中有一些错误),计算签名是发送签名的后缀。例如:
接收到的签名(解码和解密):
3021300906052b0e03021a05000414ca5cc3be233b045be79e94389e47353b7aaec434
请求体的计算签名(其sha1散列):
ca5cc3be233b045be79e94389e47353b7aaec434
接收到的签名开始时的额外字节是多少?它们似乎不会在请求之间发生变化。
各种信息:
M4Xq8WmUHjaR4Fgj9HUheoOUkZf4tkc5koBtkBq/nCmh4X6EiimBXWa7p+kHoMx9noTdytGSUREaxYofTne1CzYOW0wxb9x6Jhor6lMwHAr4cY+aR1AEOkWrjsP94bewRr1/CxYNl7kGcj4+QjbEa/7dL19BNmLiufMLZDdRFsZSzlfXpPaAspsoStqVc/qc26tj5R9wtB0sTS4wbFc4eyCPFaCZocq1gmjfR3YQXupuD7J3slrz54SxukNmL/M1CIoZ8lOXjS82XLkKjsrzXdY5ePk8XsEDjNWkFSLbqzBzGBqzWx4M913uDA6gPx5tFKeoP8FgpV+BHKDf3d4gmQ==- Excerpt from the [Alexa documentation](https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/developing-an-alexa-skill-as-a-web-service#checking-the-signature-of-the-request):
检查请求的签名 Alexa发送的请求提供了在HTTP头中验证签名所需的信息:
SignatureCertChainUrlSignature要验证签名:
发布于 2016-11-01 11:37:29
通过搜索发送签名的前缀3021300906052b0e03021a05000414,我发现了前缀是指示使用的哈希算法的常量。。要么直接切断它,要么让OpenSSL进行签名验证就可以解决问题。永远不要酿造自己的密码!
https://stackoverflow.com/questions/40320822
复制相似问题