当前位置: 首页 > news >正文

广州设计网站投稿平台

广州设计网站,投稿平台,宣城做网站的公司,科技公司网站设计方案企业内训课程、在线教育平台付费课程加密防下载的10种方式: 实例演示:课程视频-第1课状语从句,VRM演示应用 企业内训课程、在线教育平台付费课程,他们的这种视频课程的加密是如何做的?整理了10种思路,供大家参考&…

企业内训课程、在线教育平台付费课程加密防下载的10种方式:

实例演示:课程视频-第1课状语从句,VRM演示应用

企业内训课程、在线教育平台付费课程,他们的这种视频课程的加密是如何做的?整理了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', //需要切换的视频vidplaysafe: '81814fed-bdd0-4506-bec1-ebc8093148c6-hfevwsfxcsbcocx', //新获取的playsafe tokensign: '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_IP'];} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];} else {$ipaddress = $_SERVER['REMOTE_ADDR'];}return $ipaddress;
}$userId = 'your userId';       // 保利威点播账号的userId
$secretkey = 'your secretkey';     // 保利威点播账号的secretkey
$videoId = '88083abbf5bcf1356e05d39666be527a_8';  // 视频vid
$ts = time() * 1000;      // 时间戳
$viewerIp = get_client_ip();  // 观众ip
$viewerId = '12345';      // 观众id
$viewerName = 'testUser';  // 观众昵称, 若值为中文需要urlencode('张三')
$extraParams = 'HTML5';  // 自定义扩展参数
$disposable = false // true 表示 token 仅一次有效。false 则表示在有效期内可以多次验证。默认为 false。/* 将参数 $userId、$secretkey、$videoId、$ts、$viewerIp、$viewerIp、$viewerId、$viewerName、$extraParams按照ASCKII升序 key + value + key + value ... +value 拼接
*/
$concated =  'extraParams'.$extraParams.'ts'.$ts.'userId'.$userId.'videoId'.$videoId.'viewerId'.$viewerId.'viewerIp'.$viewerIp.'viewerName'.$viewerName;
// 首尾加上secretkey值
$plain = $secretkey.$concated.$secretkey;
// 取大写MD5
$sign = strtoupper(md5($plain));// 然后将下列参数用post请求  https://hls.videocc.net/service/v1/token 获取 token
$url = 'https://hls.videocc.net/service/v1/token';
$data = array('userId' => $userId, 'videoId' => $videoId, 'ts' => $ts, 'viewerIp' => $viewerIp, 'viewerName' => $viewerName, 'extraParams' => $extraParams, 'viewerId' => $viewerId, 'sign' => $sign);
$options = array('http' => array('header'  => "Content-type: application/x-www-form-urlencoded",'method'  => 'POST','content' => http_build_query($data))
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);// 获取接口返回结果中的token值, 并传给播放器播放加密视频
$token = json_decode($result)->data->token;
echo $token;

Java SpringMvc代码:

@ResponseBody
@RequestMapping("/playerSafe")
public String playerSafe(HttpServletRequest request) {String userId = "your userId";       // 保利威点播账号的userIdString secretkey = "your secretkey";     // 保利威点播账号的secretkeyString videoId = "88083abbf5bcf1356e05d39666be527a_8";  // 视频vidlong ts = System.currentTimeMillis();      // 时间戳String viewerIp = getClientIp(request);  // 观众ipString viewerId = "12345";      // 观众idString viewerName = "testUser";  // 观众昵称, 若值为中文需要urlencode('张三')String extraParams = "HTML5";  // 自定义扩展参数boolean disposable = false; // true 表示 token 仅一次有效。false 则表示在有效期内可以多次验证。默认为 false。/* 将参数 userId、secretkey、videoId、ts、viewerIp、viewerIp、viewerId、viewerName、extraParams按照ASCKII升序 key + value + key + value ... +value 拼接*/String concated = "extraParams" + extraParams + "ts" + ts + "userId" + userId + "videoId" + videoId + "viewerId" + viewerId + "viewerIp" + viewerIp + "viewerName" + viewerName;// 首尾加上secretkey值String plain = secretkey + concated + secretkey;// 取大写MD5,可自行选择md5库String sign = md5Hex(plain).toUpperCase();// 然后将下列参数用post请求  https://hls.videocc.net/service/v1/token 获取 tokenString url = "https://hls.videocc.net/service/v1/token";Map<String, String> params = new HashMap<>();params.put("userId", userId);params.put("videoId", videoId);params.put("ts", String.valueOf(ts));params.put("viewerIp", viewerIp);params.put("viewerName", viewerName);params.put("extraParams", extraParams);params.put("viewerId", viewerId);params.put("sign", sign);// 可自行选择http客户端String response = HttpClientUtil.getInstance().sendHttpPost(url, params);try {//解析jsonObjectMapper objectMapper = new ObjectMapper();TokenResponse tokenResponse = objectMapper.readValue(response, TokenResponse.class);// 响应代码,200为成功,403为ts过期或签名错误,400为参数错误(例如缺少 userId 或 videoId)if (tokenResponse.getCode() == 200) {Map data = (Map) tokenResponse.getData();return data.get("token").toString();}} catch (IOException e) {e.printStackTrace();}return "";
}
static class TokenResponse {int code;String status;String message;Object data;//省略getter、setter...
}
public String getClientIp(HttpServletRequest request) {String ip = request.getHeader("x-forwarded-for");if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}return ip;
}

3.用户ID跑马灯

将用户I的ID、电话号码或其他信息内容等设置在视频上不规则跑动(作追溯盗版者用)。 ID跑马灯功能,是指通过设定文字内容(一般是观众的身份ID信息)在视频上不规则滚动,以此来警示盗版者,达到视频版权保护的效果,示例中是将用户的ID和电话号码显示出来。

4.数字化动态水印

将用户ID、电话号码或其他信息内容等以动态水印形式展现在视频上,实现水印在视频上不规则地显现,可追溯录屏者身份,对翻录行为起到强有力的震慑作用。

5.浏览器防录屏

通过播放器实时监测,如果检测到视频处于录屏状态或小窗待录屏状态,视频会立即停止播放,显示报错信息,视频无法继续播放。

6.视频水印 (企业LOGO)

在视频中添加企业专属的视频水印,从而让视频中融入企业的版权信息,防止盗录者盗取版权,保护公司的知识产权。视频上传后自动将企业的LOGO图标水印加在视频右上角/右下角等位置上。

7.域名白名单​OVP防盗链

通过OVP防盗链技术实现指定网站播放,俗称域名黑白名单。设置网站A白名单,则只允许视频在A网站下播放;设置网站B黑名单,则禁止视频在B网站下播放,可有效防止用户原创视频资源被非法盗用。

8.ATS/HTTPS数据防篡改

HTTPS协议,采用了HTTPS协议,其提供网站身份验证与加密通讯方法,避免信息截韧“钓鱼”攻击,有效防止网页被篡改,保证企业及学员间的信息 安全;ATS标准,苹果操作系统遵循ATS标准,开启ATS安全特性后,网络传输自动通过HTTPS协议进行传输,保证视频播放安全。

9.播放器代码混淆加密

播放器代码加密,防反编译、代码混淆等方式。

10.禁止拖动视频进度条

html5播放器禁止拖拽功能实例(常用于场景:企业培训、在线教学内容禁止学员拖动视频进行观看)。

 我的文章推荐:

  • [视频+图文] 线上研讨会是什么,企业对内对外培训可以用线上研讨会吗?
  • [图文] 企业直播对网络带宽有什么要求?
  • [图文]OBS如何实现毫秒级超低延时直播
  • 直播播放器API(播放器调用方法、参数、接口和事件)
  • 企业直播要如何做?硬件设备、网络环境有哪些要求?

http://www.ysxn.cn/news/2920.html

相关文章:

  • 山东省旅游局网站建设情况网站排名点击工具
  • 网站内地图位置怎么做网站建设方案内容
  • 网站编辑工具引擎搜索网站
  • 做佛教网站seo优化网站源码
  • 做企业销售分析的网站网络营销的方法包括哪些
  • 营销网站的优势是什么晋中网站seo
  • 中小企业品牌网站建设怎么自己做网页
  • 帝国cms怎样做网站迁移邯郸百度推广公司
  • iis7添加网站丽水百度seo
  • 潍坊 开发区网站建设网络营销策划的主要特点
  • 宜宾做直销会员网站宁波优化网站排名软件
  • 巴中手机网站建设如何推广宣传一个品牌
  • 婚恋网站怎么做网站设计
  • wordpress设置静态内容缓存时间网站seo搜索引擎优化教程
  • 菠菜源码怎么做网站南宁网络推广平台
  • 苏州吴中区做网站奶糖 seo 博客
  • acg大神做的网站长沙seo结算
  • 百度网站建设的十一个如何做一个网站的seo
  • wordpress 文章页显示武汉百度推广优化
  • 网站推广的方法和渠道app网络推广方案
  • 西安住房和城乡建设局网站对网络营销的理解
  • 做淘宝客服必备网站游戏推广
  • 西部数码网站建设助手微信推广
  • 北京做网站公司web网站模板
  • 如何给网站做高质量外链唐山公司做网站
  • 安徽池州做企业网站app推广赚钱平台
  • 18款安全应用软件免费大全成都seo优化公司排名
  • 如何在亚马逊开店seo网站排名
  • 潍坊做公司网站广告公司招聘
  • 湘潭网站建设定制磐石网络百度热度榜搜索趋势