PHP實現(xiàn)騰訊云視頻加密的示例代碼
前言
上傳到騰訊云上面的視頻,如何實現(xiàn)防盜鏈?
當我們的視頻放到,騰訊云上面,播放的時候如何實現(xiàn)指定過期時間,防止他人盜刷流量,這就要用到,騰訊云key防盜鏈技術,這個技術有什么用呢?
- 視頻 URL 中指定過期時間,他人獲取后無法長期使用
- 在視頻 URL 中指定最大允許播放 IP 數(shù),他人獲取后不能無限制地分發(fā)給更多人觀看
- CDN 節(jié)點檢查視頻 URL 中的參數(shù)和簽名,對視頻播放請求進行控制。如果請求檢查不通過,則返回403響應碼
接下來就是怎么用php實現(xiàn)了,大致過程也可以先查看一下官方文檔了解一下過程。
實現(xiàn)加密
1、打開騰訊云視頻開啟key防盜鏈
這是一串加密密鑰,先復制下來,接下來有用。
2、導入csv文件到數(shù)據(jù)庫
把騰訊云上面的視頻地址導出,然后導入到自己的數(shù)據(jù)庫
里面會給到播放地址一些的東西
3、加密
代碼可以用這個搬過去,只要把你的key替換一下,我用是tp6開發(fā),獲取數(shù)據(jù)庫的數(shù)據(jù),具體看自己項目,跟著來。
public function secret(Request $request) { //分頁處理 $where = Util::getMore([ ['page',1], ['limit',20] ]); $long = new Video(); //獲取數(shù)據(jù) $data = $long->order('ID','asc')->field('video,title,play,cover')->page($where['page'],$where['limit'])->select(); if(empty($data)){ $this->success('成功',[]); } $res = []; foreach($data as $item){ $item['play'] = intval($item['play']); //替換域名,可以根據(jù)自己的來,不改的話,會報錯 $temp=str_replace('http://1500005512.vod2.myqcloud.com','',$item['video']); $dirr = $this->lst($temp); //替換成自己的key $key = 'v3Pz10kGbn6HssfXoKK3'; // 過期時間秒; $now = time(); $next = $now + 1*60*60; // 生成16進制 $overtime = dechex($next); // 生成sig $str = $key.$dirr.$overtime; $sign = md5($str); $item['video'] = $item['video'] . '?t=' . $overtime .'&sign=' . $sign; $rel[] = $item; } $ress = []; foreach($rel as $item){ //urlen編碼 $item['video'] = urlencode($item['video']); $ress[] = $item; } return success("ok",$ress); }
用postman,發(fā)送數(shù)據(jù),生成的key,可以用校正工具測試一下。如果報key無效,一般是生成的密鑰不對,一步一步檢查,發(fā)現(xiàn)錯誤并改正。
到此這篇關于PHP實現(xiàn)騰訊云視頻加密的示例代碼的文章就介紹到這了,更多相關PHP視頻加密內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
PHP基于Closure類創(chuàng)建匿名函數(shù)的方法詳解
這篇文章主要介紹了PHP基于Closure類創(chuàng)建匿名函數(shù)的方法,結合實例形式詳細分析了Closure 類的功能、常用函數(shù)使用技巧及相關注意事項,需要的朋友可以參考下2017-08-08