切片加密原理:将视频从MP4文件切片成多个ts文件,并使用AES-128对每一片视频进行加密,最后生成m3u8文件。这里我们需要用到ffmpeg。
1.生成公有key
openssl rand 16 > encrypt.key
2.生成私有key(16进制)
openssl rand -hex 16
3.按照下面格式新建一个encrypt.keyinfo的文件
Key URI # enc.key的路径,使用http形式
Path to key file # enc.key文件
Private key # 上面生成的16进制的私有key
例如:
http://192.168.1.111:8090/encrypt.key
/home/Admin/encrypt.key
8b4c39c498949536f8d2af1f6fec7d39
4.用 ffmpeg 开始分片并加密
五、防盗链Referer
通过对视频资源设置防盗链Referer,可以屏蔽非白名单内的视频资源下载。例如思博网的视频我们都设置了防盗链:
HTTP referer 是 header 上的一个属性。当浏览器向服务器发起请求时,一般会带上Referer,告诉服务器我是从哪个页面链接过来的。打个比方,我们在后台上传一个视频到七牛云,七牛云高级配置里有一个域名防盗链选项,我们可以在这里设置白名单和黑名单。
另外,七牛云还提供了私有空间,私有空间内的文件对象都要获得拥有者的授权才能进行访问,并且可以设置链接的有效时间,超过时长后自动失效(视频会有缓存,清空缓存之前视频仍然有效)。私有空间的特点是安全性更高,需要加token访问,资源链接有时效性。
除了以上几种策略外,还有视频播放器加密、跑马灯防盗录等等。但是即使做了加密处理,也阻止不了录屏。完全杜绝视频泄露是很难的,或者我们可以采取其他方式加大盗用的成本。
目前市面上大致的视频加密就是这几种,当然我们可以多个方案一起使用,使视频加密的安全性更高。
希望以上内容能对有需要的人有所帮助
欢迎大家一起探讨交流