七牛直播云播放鉴权-时间戳防盗链

疑惑的是:

1.设置防盗链的播放域名,这个域名是什么,有什么用?

2.过期时间的理解:

有效时间:表示当前防盗链有效时间,按生成URL链接时为起始时间。

2.1 比如5分钟,是生成url链接5分钟内拿到可以播放,这时候别人盗了怎么办?

2.2 我自己5分钟内拿到播放地址可以播放,过了5分钟怎么办,怎么保障持续播放?

关于地址刷新机制:

https://developer.qiniu.com/pili/kb/4161/timestamp-anti-daolian-about-broadcast-domain

当前直播播放鉴权配置,需要提供如下信息,提交工单。

  • 直播空间名称
  • 相应设置了防盗链的播放域名
  • 时间戳防盗链的 key

基于时间戳防盗链的功能主要是:通过使用约定的加密字符串来对具有访问有效期的资源链接进行一些加密计算的到一个 sign 值,然后访问外链里面带上这个 sign 和截止时间戳去访问七牛直播节点,七牛直播节点会用同样的算法来计算访问链接是否合法,如果不合法则返回403 Forbidden,否则返回所要访问的资源。

算法说明

⭐️ 七牛直播云的时间戳防盗链分为两类:

  • 定制化时间戳防盗链:用户定制的时间戳防盗链。
  • portal 上标准的时间戳防盗链:指定过期时间戳播放鉴权。token的生成算法是md5, 有效时间从现在开始到 URL 中的时间戳(十六进制)为止。

⭐️ 定制化时间戳防盗链

用户定制,详细信息需要通过工单联系技术支持。

⭐️ portal 上标准的时间戳防盗链

签名参数

参数描述
t防盗链过期时间戳的十六进制字符串
sign和七牛约定好的加密字符串,由 key 和过期时间戳共同生成

签名算法

输入信息:设置时间戳防盗链时的密钥 key,防盗链的过期时间戳的十六进制字符串 t, 播放地址的 path

签名sign生成过程: 获取到key,t 以及播放地址后,生成中间字符串 S= key + path + t , 然后 sign=md5(s).to_lower(),其中 to_lower() 表示生成的 md5 字符串用小写字母表示

签名参数传递方式

例如播放地址是:
http://pili-live-hls.baozijian.cc/tron/baozijian.m3u8

最终形成的播放地址是:
http://pili-live-hls.baozijian.cc/tron/baozijian.m3u8?sign=xxxx&t=xxxx

参考实例:

需要获取一个当前时间5分钟后过期的防盗链签名 url.

  • 播放地址为: http://pili-live-hls.baozijian.cc/tron/baozijian.m3u8
  • 已经开启了 portal上标准的时间戳防盗链, 设置了主密钥key为123

假设当前时间的时间戳为: 1513008000
过期时间是5分钟后, 所以过期时间戳为: 1513008000 + 5 * 60 = 1513008300
换算为16进制: 5a2eacac (一定要全小写)
即参数 t=5a2eacac

中间字符串的生成规则是: S= key + path + t
key 是设置时输入的密钥, 这里是 key=123
path 是 URL 中的 path 部分, URL是http://pili-live-hls.baozijian.cc/tron/baozijian.m3u8, 则 path=/tron/baozijian.m3u8

所以 S=123/tron/baozijian.m3u85a2eacac

再用 md5算法 sign = md5(S).to_lower()
得到: sign=020d379859237cb0947131d708e9c4d3

所以最终生成的5分钟后过期的播放地址是: http://pili-live-hls.baozijian.cc/tron/baozijian.m3u8?sign=020d379859237cb0947131d708e9c4d3&t=5a2eacac

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值