七牛直播云播放鉴权-时间戳防盗链
疑惑的是:
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
七牛直播云播放鉴权-时间戳防盗链相关推荐
- php 七牛时间戳防盗链,时间戳防盗链
1. 简介 七牛 CDN 支持多种访问控制方式:其中,时间戳防盗链可以通过对时间有关的字符串进行签名,将时间.签名信息通过一定的方式传递给 CDN 边缘节点服务器进行鉴权,从而正确响应合法请求.拒绝非 ...
- 何李石:七牛直播云技术详解
导读: 6月30日,七牛在原有云存储,云加速以及数据处理服务的基础上,正式推出七牛直播云服务.这次发布,除了推出实时流网络(LiveNet)作为全面支撑直播实时互动场景的传输网络通道,同时也推出多平台 ...
- 七牛直播云服务技术揭秘
以下根据七牛云首席布道师何李石现场演讲内容整理. 直播模型及其实现 一个通用的直播模型一般包括三个模块:主播方.服务器端和播放端. 首先是主播方,它是产生视频流的源头,由一系列流程组成: 第一,通过一 ...
- 直播APP的应用(使用七牛直播平台SDK和环信IM低仿映客)
简介 这是一款低仿映客直播的Android直播聊天应用,本项目通过使用七牛的直播平台提供的sdk进行推流和拉流,使用环信IM来作为用户系统的管理直播聊天室中消息收发.发送礼物.弹幕.私信等功能.本项目 ...
- 独立完成系统开发七:安全管理之鉴权
独立完成系统开发七:安全管理之鉴权 由于在MyAdmin项目中我们是通过Shiro然后结合jwt来实现基于token的方式进行认证的.但是默认情况下,Shiro 的 SecurityManager 使 ...
- 七牛云存储基于时间戳防盗链算法参考实现
基于时间戳防盗链的功能其实每家的CDN都是支持的.主要是通过使用约定的加密字符串来对具有访问有效期的资源链接进行一些加密计算的到一个sign值,然后访问外链里面带上这个sign和截止时间戳去访问CDN ...
- android七牛直播镜像,七牛云直播SDK之推流解析
最近由于项目需要,研究了直播的推拉流以及滤镜叠加的效果,在此记录一下一些小的细节. 前期做了直播SDK的调研,发现七牛云的SDK更符合项目需求一点,所以,最终选择了七牛云的SDK. 推流 七牛云官方的 ...
- 七牛直播播放端flutter插件
// Android端参数, 详细使用请见七牛播放SDK(https://developer.qiniu.com/pili/1210/the-android-client-sdk) data clas ...
- php使用七牛直播,七牛上传文件,PHP版本
自从知道七牛以来,就一直在用七牛做图片外链,但是每次需要到七牛官网登录,然后再上传图片.感觉很麻烦,最近想做一个自己的上传到七牛的平台,开始的想法是用C#写一个windows客户端,在用swift写一 ...
- php时间戳防盗链,金山云-文档中心-设置时间戳+共享密钥防盗链
SetRequestAuthConfig 描述 本接口用于设置加速域名的时间戳+共享密钥防盗链功能. 注意: 加速域名创建后,默认不开启时间戳+共享密钥防盗链功能. 请求语法 本接口请求需要包含指定目 ...
最新文章
- ​全球首个视频实验期刊JOVE征稿:植物微生物组学方法专刊(牛犇、韦中、高峥、王蒙岑)...
- 微信的充值页面为啥长这样?(多图)
- 剑指offer-跳台阶
- ES6公用跑马灯抽奖组件的封装及使用
- 批处理:修改COM端口号
- 问:为什么python中有了全局解释器锁GIL,还要有互斥锁?
- ts高仿C#的List、Dictionary
- 台湾半导体封测商南茂股东大会通过紫光24亿元入股案
- DateUtils封装
- 截止失真放大电路_BJT的失真
- 孙德顺敛财10亿,看图挖掘计算如何穿透与识别多层嵌套影子公司!
- ribbonmq超时配置_使用RabbitMQ实现订单超时取消(延迟队列)
- 树莓派控制3631AS数码管 驱动 python程序 共阴数码管|徐奥雯编写|XUAOWEN
- 2020-10-23 集合+序列化+递归+多线程+泛型+枚举+单例+反射小记
- TOR交换机和普通交换机有什么区别?
- Vue2.0的三种常用传值方式、父传子、子传父、非父子组件传值
- Java九十条经验法则之第一条:用静态工厂方法代替构造器
- win10 计算机管理器没有ime,win10系统右下角显示IMe被禁用的解决方法
- Go之Go语言是什么?Go有什么特点?Go语言的应用前景如何?
- python练习(1)
热门文章
- 【SpringMVC】@Controller 和 @RestController 区别
- 我爱刷题系列汇总(51-100)【2017.11.24-2018.01.12】
- sqlserver中的循环遍历(普通循环和游标循环)(转载)
- 【Mybatis系列】从源码角度理解Mybatis字段映射-驼峰式命名
- gcc观察运行时链接符号绑定
- android中使用setVideoURI()播放视频
- 如何通过文件流将很多图片存入SD卡,而不是自己内存
- 绝地求生服务器维护6.28,绝地求生6月28号更新完怎么进不去 绝地求生更新维护到几点6.28...
- CentOS镜像中替换安装镜像的小系统的内核方法
- Linux per-CPU实现分析