毕伟

宁波大学硕士,2015年3月加入网易,负责网易云视频服务Android,ios,windows端播放器和音视频技术的相关开发,兴趣领域在视频编解码和图像处理。

随着经济及互联网的快速发展,版权越来越受到大家的重视。而对于视频来说,可以通过注入水印的方式来进行版权保护,但是并不能完全遏制其传播,为了更好的保护视频拥有者的权益,我们采用对视频内容进行加密的方式,这样即使视频被人传播盗用,也无法进行播放。

视频加解密系统需满足的条件

网易云为了保护用户的点播视频资源,开发了一套完整的加解密系统。对于一套加解密系统来说,需要满足以下几个条件

1、高安全性,保证加密后的视频不被破解

2、低复杂性,加解密过程的复杂性要低,保证高效率

3、可操作性强,用户易操作

4、容错性强,算法鲁棒性要强

5、压缩比高,加密后不能增加视频文件的大小

6、算法可升级,通过升级加解密算法进一步提高鲁棒性

视频加密系统

针对上述要求,网易云自研了一套加密系统,用户上传视频文件到网易云的分布式存储平台,执行加密任务。首先,企业应用服务器会发送加密任务到网易云视频管理服务平台,对于不符合格式的视频,网易云在加密之前会对待加密的视频进行转码;其次,网易云视频管理服务平台收到加密任务后,会从密钥管理服务器获取加密密钥,然后对视频进行加密;最后,将加密完成的视频存储到网易云的分布式存储平台上,并返回任务执行结果给用户。

 

视频解密系统

要播放加密视频,需要先对视频进行解密,才能进行播放,网易云提供的播放器SDK能够支持加密视频的解密播放。为了保证解密过程的安全性,密钥并不是以明文的方式进行获取,而是由播放器SDK从网易云视频点播服务器获取,为了防止他人通过抓包等网络拦截手段窃取密钥,网易云对密钥也进行了加密,这样进一步保证了安全性。

(1) 用户要播放加密视频,首先需要从企业应用服务器获取加密视频的播放URL;

(2) 用户根据appkey和secretkey从网易云视频管理服务器获取token,用于获取密钥;

(3)  用户将播放URL和token传给播放器;

(4) 播放器SDK根据token从网易云视频管理服务器获取密钥,网易云视频管理服务器从密钥管理服务器获取密钥并返回给播放器SDK,然后播放器SDK对密钥进行解密,得到原始密钥;

(5) 为了保证解密过程正确无误,播放器SDK还设计了一套密钥校验机制,对密钥的正确性进行校验,校验正确的才能进行解密播放;

(6) 对于校验通过的密钥,SDK会从CDN进行拉流解码播放;

为了保证解密的过程不对播放造成延迟,网易云采用的是流式加密的方式,即可以边解密边播放,不需要下载整个文件再进行解密播放。

——【特别推荐】——

【内有网易黑猪肉券福利】网易MCTalk首秀

【揭秘】网易云视频点播加解密系统架构相关推荐

  1. 网贷风控体系之-系统架构

    网贷风控体系之-系统架构 目前常见的大数据架构是基于实时大数据处理框架Lambda架构.Lambda架构的数据通道分为实时流和离线两部分.流式通道处理为保障实效性更多的以增量计算为主辅助参考,而批处理 ...

  2. 基于CH375的嵌入式USB文件加解密系统的设计

    基于CH375的嵌入式USB文件加解密系统的设计 [日期:2008-7-21] 来源:电子技术应用  作者:华中科技大学 电子与信息工程系, 湖北 武汉 430074 [字体:大 中 小] <s ...

  3. 【crypto】基于crypto.js的web前端加解密系统实现

    文章目录 一.概念介绍 1.1 crypto.js介绍 1.2 加密 / 哈希 / 编码 1.2.1 加密/解密 1.2.2 散列/哈希 1.2.3 BASE64编解码 二.加解密思想(以md5为例) ...

  4. 一款仿网易云音乐Java开源系统(附源码)

    嗨喽!Java后端编程的各位小伙伴们,由于公众号做了乱序推送改版,为了保证公众号的推文能够第一时间及时送达到大家手上,大家记得将公众号 加星标置顶 ,公众号每天会送上Java技术干货推文 ! 上篇推文 ...

  5. 一点一滴解读网狐的加解密

    先贴出来源码 [cpp] view plaincopy #ifndef PACKET_HEAD_FILE #define PACKET_HEAD_FILE #pragma pack(1) // //端 ...

  6. 揭秘网易云音乐的个性化推荐算法【黑科技】

    在"精准推荐者得民心"的今天,推荐系统已成为各大互联网公司的标配.但由于现实中很多数据是非欧氏空间生成的(例如,社交网络.信息网络等),一些复杂场景下的业务需求很难通过协同过滤等基 ...

  7. 基于FPGA的DES加解密系统开发(5000字详细介绍欢迎订阅)

    1.问题描述: DES是个块加密法,按64位块长加密数据,即把64位明文作为DES的输入,产生64位密文输出.加密与解密使用相同的算法和密钥,只是稍作改变.密钥长度为56位.基本原理图如1. 图1  ...

  8. TOP100summit2017:网易云通信与视频CTO赵加雨:外力推动下系统架构的4个变化趋势...

    壹佰案例:很荣幸邀请到您成为第六届壹佰案例峰会架构专场的联席主席,您曾深度参与Cisco Jabber,Webex Meeting, Cisco Spark等多项分布式实时通信类产品的架构与研发,您觉 ...

  9. TOP100summit2017:网易云通信与视频CTO赵加雨:外力推动下系统架构的4个变化趋势

    壹佰案例:很荣幸邀请到您成为第六届壹佰案例峰会架构专场的联席主席,您曾深度参与Cisco Jabber,Webex Meeting, Cisco Spark等多项分布式实时通信类产品的架构与研发,您觉 ...

最新文章

  1. 程序员被辞 12 天,前领导要求回公司解释代码,结果懵了…
  2. Jvm 系列(五):Java GC 分析
  3. “CCF传播大使”招募公告,期待你的加入!
  4. 清除被占用的8080端口,否则npm run dev无法正常运行
  5. 数电与模电的根本区别 转
  6. Spark学习之第一个程序打包、提交任务到集群
  7. java经典问题算法大全_10道java经典算法!每一题都能提升你的java能力!
  8. PyTorch并行与分布式(二)分布式通信包torch.distributed
  9. bzoj5312 冒险(吉司机线段树)题解
  10. Android 手写板SDK
  11. Android中实现两次点击返回键退出本程序
  12. 翁凯java进阶_多项式加法——mooc《零基础学Java语言》-(浙大翁凯)第五周编程题...
  13. python 并发之asyncio
  14. MyEclipse10破解 运行run.bat闪退 亲自试验
  15. 管道通信的基本流程和代码
  16. C#对XML、JSON等格式的解析
  17. 三维实景地图智慧园区3D可视化物联商迪3D网平台制作
  18. P2P TELNET
  19. invalid button size rid: 5fd188c8-1d752f57-0d53f85f
  20. 【Torch API】pytorch 中torch.ones_like和torch.zeros_like函数详解

热门文章

  1. HDU 4228 Flooring Tiles 反素数的应用
  2. GraphPad Prism 统计教程:简单线性回归原理
  3. C语言makefile文件
  4. python数据挖掘资料
  5. war和war exploded区别
  6. 毕业论文 | 基于单片机的烟雾报警器设计(完整源代码、流程图、电路图)
  7. 问题 | Matlab:Fatal Error on startup(致命错误)
  8. Unable to compile class for JSP的解决方法
  9. C/C++与Matlab混合编程初探
  10. 数学之路(2)-数据分析-R基础(2)