腾讯云智能创作签名算法_音视频解决方案_同尘科技

智能创作 3年前 (2021-12-02) 浏览 47

签名生成步骤

获取云 API 密钥

获取腾讯云用户身份密钥,即 SecretId 和 SecretKey,具体步骤如下:1. 登录控制台,选择 云产品 > 访问管理 >API密钥管理,进入 API 密钥管理页面。2. 获取云 API 密钥。如果您尚未创建密钥,则单击 新建密钥 即可创建一对 SecretId 和 SecretKey。

拼接明文串

按照 URL QueryString 的格式要求拼接签名明文串 original,其格式如下:

secretId=[secretId]&currentTimeStamp=[currentTimeStamp]&expireTime=[expireTime]&random=[random]&platform=[platform]&action=[action]&userId=[userId]

注意上述 original 中的[secretId][currentTimeStamp][expireTime][random][platform][action][userId]需要自行替换成具体的参数值。original 除了可以包含必选参数,还可包含任意多个选填参数,详细请参见 签名参数。参数值必须经过 UrlEncode,否则可能导致 QueryString 解析失败。

将明文串转为最终签名

下面以 Java 语言作为示例进行实现,其他语言的实现请参见 签名示例。1. 用已获取的 SecretKey 对明文串 original 进行 HMAC-SHA1 加密,得到 signatureTmp:

SecretKeySpec secretKey = new SecretKeySpec(this.secretKey.getBytes("UTF-8"), mac.getAlgorithm());mac.init(secretKey);byte[] signatureTmp = mac.doFinal(original.getBytes("UTF-8"));

2. 将明文串 original 使用 UTF-8 编码成字节数组,然后把 signatureTmp 与该数组进行合并,最后把合并后的结果进行 Base64 编码,得到最终签名 signature:

String signature = base64Encode(byteMerger(signatureTmp, original.getBytes("utf8")));

签名参数说明

参数名称 必选 类型 说明
secretId String 云 API 密钥 中的 SecretId。
currentTimeStamp Integer 当前 Unix 时间戳。
expireTime Integer 签名到期 Unix 时间戳,expireTime = currentTimeStamp + 签名有效时长
random Integer 随机数,类型为32位无符号整型。
platform String 平台名称。
action String 操作 API 名称,目前支持:OpenProject:打开项目编辑页。Upload:上传文件。Login:客户端 API 登录。
userId String 用户 ID,为开发者服务端用户的唯一标识。
openProject.projectId String 项目 ID,当action=OpenProject时有效。

签名示例

Java 版签名示例Go 版签名示例Node.js 版签名示例Python 版签名示例PHP 版签名示例

对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?