移动端视频的WEB加密

一、首先在【POLYV后台】——【设置】——【加密设置】进行如下设置:

二、保存好以上设置之后,还需要在页面的播放代码中添加ts和sign参数。当移动端WEB浏览器请求m3u8时,会在m3u8地址后面附带ts和sign参数,POLYV云平台接收到参数后会对ts和sign参数进行校验。若校验通过,返回正确的解密密钥key文件链接给客户端。反之,非法访问key,则会响应400错误状态。
三、PHP为示例代码

参数说明:

  • $secretkey (为账号secretkey,可在后台---设置---API接口窗口中查阅)
  • $vid (为视频ID,可在视频列表中查找)
  • $ts = time()*1000; (ts参数为13位的毫秒级时间戳或者用10位的秒级时间戳,后面加多3个0)
  • $sign = md5($secretkey.$vid.$ts); (sign参数为secretkey、vid、ts的值按顺序拼凑起来的字符串进行MD5计算得到的结果)
<?php
$vid = "e2e84a738354402a52ce81aeab4e3067_e";
$secretkey= "7UagtQOq2A";
$ts=time()*1000;  //10位的秒级时间戳,后面加多3个0,最后为13位的数值

$hash = md5($secretkey.$vid.$ts);
?>

<script src='https://player.polyv.net/script/polyvplayer.min.js'></script>
<div id='plv_e2e84a738354402a52ce81aeab4e3067_e'></div>
<script>
var player = polyvObject('#plv_e2e84a738354402a52ce81aeab4e3067_e').videoPlayer({
    'width':'600',
    'height':'485',
    'vid' : 'e2e84a738354402a52ce81aeab4e3067_e',
    'ts':'<?php echo $ts; ?>',
    'sign':'<?php echo $hash; ?>'
});
</script>

由于移动端WEB是通过HTML5的video标签调用手机系统的原生播放器去播放视频,需要将解密密钥key通过http传输给手机系统的原生播放器。当key的权限为“开放授权”时,key永久生效,无需带上时间戳ts和签名sign去访问。当key的权限为“WEB授权”时,则需要带上时间戳ts和签名sign,才能正确访问到key,访问key带上的时间戳ts的有效期为5分钟

与移动端WEB网页不同的是,PC端WEB网页播放加密视频时,无需通过http去传输key,在播放的过程中,POLYV的Flash播放器会调用播放器内部的解密算法,去解密播放加密视频,无需担心key传输和暴露的问题。

设置【WEB授权】虽然有更多的播放选择,可以在移动端网页上播放,但加密强度弱于【APP授权】。如果希望视频文件的加密安全得到更好的保障,通常推荐移动端加密使用【APP授权】。

四、解密密钥的“WEB授权”过程原理,如下图所示:

绘图2

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...