企业内训课程、在线教育平台付费课程,他们的这种视频课程的加密是如何做的?整理了10种思路,供大家参考:
1.VRM分片错序视频加密
采用分布式编码技术,将视频文件物理切片,每片视频进行多种算法混合型加密, 同时结合独立研制密码本,将关键数据进行错序混淆,对视频文件进行最高级别加密,这样经过加密的视频内容即使被下载,也无法进行恶意的二次分发,视频破解难度倍增。
2.Html5全链路视频加密
市面上常见的H5加密,采用标准的Apple HLS Encryption 视频保护机制,我们在此基础上进行深度优化,对密钥key进行深度加密,同时实现对视频播放器与视频数据文件双重加密处理,形成端到端的全链路视频安全防护,即使视频文件被盗用,其他应用也无法播放,让视频更加安全。
我们的加密调用方法示例:
<div id="player"></div>
<script src="//player.polyv.net/script/player.js"></script>
<script>
var player = polyvPlayer({
wrap: '#player',
width: 800,
height: 533,
vid: '88083abbf5bcf1356e05d39666be527a_8',
playsafe:'81814fed-bdd0-4506-bec1-ebc8093148c5-hfevwsfxcsbcocx',
//playsafeUrl:'https://myDomain.com/token', // 业务方自定义的获取播放凭证接口URL,与playsafe参数二选一
ts:'1568131545000',
sign:'88313661ba7ded642c7b557b0a364b4b'
});
//切换加密视频时,需要重新获取播放凭证。如果初始化播放器时使用了playsafeUrl参数,则播放器会自动获取新的凭证,无需传playsafe参数。
player.changeVid({
vid: '88083abbf5bcf1356e05d39666be527a_9', //需要切换的视频vid
playsafe: '81814fed-bdd0-4506-bec1-ebc8093148c6-hfevwsfxcsbcocx', //新获取的playsafe token
sign: '88313661ba7ded642c7b557b0a364b4c', //新获取的sign和ts参数
ts: '1568131545001'
});
</script>
Web页面播放加密视频前,需要先访问业务方自己的服务端授权验证接口(可以在这里加上自有业务的授权验证逻辑,例如是否登录、是否购买课程等, 建议使用HTTPS)。如果业务上允许播放,则通 过创建 Playsafe Token接 口获取播放凭证(或者在服务端生成sign、ts参数),并返回给Web端播放器。
服务端生成播放凭证代码示例:
// 接口中应附带自有业务的授权验证逻辑,如判断是否登录、是否购买课程等
// 以下为生成播放凭证的代码示例
function get_client_ip() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ipaddress = $_SERVER['HTTP_CLIENT