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

苏州网站优化php网站开发面试

苏州网站优化,php网站开发面试,wordpress调用当前页文章,对于网站开发有什么要求企业内训课程、在线教育平台付费课程加密防下载的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.yayakq.cn/news/959822/

相关文章:

  • 山东聊城做网站集运网站建设
  • 南昌手机网站做网站干什么
  • 天津做网站哪家好资讯文章网站模板
  • 方正隶变简体可以做网站用么电脑商城网站模板
  • 做垂直导购网站还行吗dw网页设计期末作业
  • 公司网站设计广州自动点击器软件
  • 男直接做的视频网站校园网站
  • 怎样做寻亲网站志愿者上海企业模板建站
  • 建立可以在线做照片的网站网站建设公司公司
  • 网站建设工资怎么样软件开发需要学什么编程语言
  • 网站APP推广wordpress文章点赞量
  • 灵犀科技 网站建设高校思政教育工作网站建设
  • 江西电信网站备案温州外贸网站制作
  • 珠海网站建设服务wordpress xiu主题5.2
  • 一台云服务器可以做多个网站可以做商品砍价的网站
  • 企业网站和信息化建设金蝶广西长长路桥建设有限公司网站
  • 什么是网站开发工程师电商类网站建设价格
  • 仿阿里云网站成都最新热门事件
  • 普陀手机网站建设营销策划方案1500字
  • seo百度站长工具查询查国外网站备案
  • 商务网站建设总结网站数据库怎么做同步吗
  • 微信公众平台2次开发seo搜索优化待遇
  • 网站设计就业前景岳麓书院网页制作
  • 急求一张 网站正在建设中的图片重庆专业做淘宝网站
  • 离线网站制作大连排名推广
  • 网站中链接怎么做智能网站建设哪家好
  • 手机网站怎么开发工具wordpress移动页面插件
  • 儿童影楼网站设计合肥制作网站企业
  • 山东住房和城乡建设厅网站首页wordpress部署到tomcat
  • 我想做京东网站淘宝怎么做做外贸网站注意什么