前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实时音视频TRTC计算签名 - 脚本实现演示

实时音视频TRTC计算签名 - 脚本实现演示

原创
作者头像
醉生萌死
修改2021-10-12 16:12:19
6890
修改2021-10-12 16:12:19
举报
文章被收录于专栏:醉生梦死醉生梦死

实现效果:

    py计算签名

计算签名TRTC文档说明:

    文档地址: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

TRTC控制台配置回调密钥
TRTC控制台配置回调密钥

py代码逻辑:(python环境:python3.8)(注:此示例代码仅供参考!)

代码语言:txt
复制
# -*- 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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现效果:
  • 计算签名TRTC文档说明:
  • 回调密钥:
  • py代码逻辑:(python环境:python3.8)(注:此示例代码仅供参考!)
相关产品与服务
实时音视频
实时音视频(Tencent RTC)基于腾讯21年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档