py计算签名
文档地址:https://cloud.tencent.com/document/product/647/51586#.E8.AE.A1.E7.AE.97.E7.AD.BE.E5.90.8D
注意:这里的body内容,不要做任何转化,否则会计算签名错误!
去trtc控制台配置回调密钥,地址:https://console.cloud.tencent.com/trtc
# -*- coding: utf8 -*-
import hmac
import base64
from hashlib import sha256
# 功能:第三方回调sign校验
# 参数:
# key:控制台配置的密钥key
# body:第三方回调返回的body体
# sign:第三方回调返回的签名值sign
# 返回值:
# Status:OK 表示校验通过,FAIL 表示校验失败,具体原因参考Info
# Info:成功/失败信息
def checkSign(key, body, sign):
temp_dict = {}
computSign = base64.b64encode(hmac.new(key.encode('utf-8'), body.encode('utf-8'), digestmod=sha256).digest()).decode('utf-8')
print("生成的sign为:", computSign)
print("传入的sign为:", sign)
if computSign == sign:
temp_dict['Status'] = 'OK'
temp_dict['Info'] = '校验通过'
return temp_dict
else:
temp_dict['Status'] = 'FAIL'
temp_dict['Info'] = '校验失败'
return temp_dict
if __name__ == '__main__':
key = 'testKey'
message ='{\n\t"EventGroupId":\t1,\n\t"EventType":\t104,\n\t"CallbackTs":\t1634025594562,\n\t"EventInfo":\t{\n\t\t"RoomId":\t"696969",\n\t\t"EventTs":\t1634025594,\n\t\t"EventMsTs":\t1634025594520,\n\t\t"UserId":\t"test10",\n\t\t"UniqueId":\t1634025590938,\n\t\t"Role":\t20,\n\t\t"Reason":\t1\n\t}\n}'
sign = 'ykT+66vvx+Q9tyAEAJIyp5D/zOyPlaSNlsU2MB7InuU='
result = checkSign(key, message, sign)
print(result)
注意:此示例代码仅供参考!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。