校验Sinch短信呼叫回调

2024-06-07 20:30:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Python中复制https://www.sinch.com/using-rest/#callbackrequestsigning处的示例。在

我可以使用以下方法复制“CONTENT-MD5”:

>>import hasblib
>>import base64 
>>m='{"event":"ace","callid":"822aa4b7-05b4-4d83-87c7-1f835ee0b6f6_257","timestamp":"2014-09-24T10:59:41Z","version":1}' 
>>base64.b64encode(hashlib.md5(m.encode('utf-8')).digest())
b'REWF+X220L4/Gw1spXOU7g=='

但我无法使用以下内容复制签名:

^{pr2}$

根据站点,签名应该是Tg6fMyo8mj9pYfWQ9ssbx3Tc1BNC87IEygAfLbJqZb4

有什么想法吗?在


Tags: 方法httpsimportcomeventrest示例www
1条回答
网友
1楼 · 发布于 2024-06-07 20:30:44

原来这个秘密是用base64编码的,所以我们必须在使用之前先解码它。以下工作:

>>>secret = base64.b64decode("BeIukql3pTKJ8RGL5zo0DA==")
>>>message = 'POST\nREWF+X220L4/Gw1spXOU7g==\napplication/json\nx-timestamp:2014-09-24T10:59:41Z\n/sinch/callback/ace'.encode('utf-8')
>>>base64.b64encode(hmac.new(secret, message, digestmod=hashlib.sha256).digest())
b'Tg6fMyo8mj9pYfWQ9ssbx3Tc1BNC87IEygAfLbJqZb4='

相关问题 更多 >

    热门问题