PHP实现腾讯云视频加密的示例代码

目录
  • 前言
  • 实现加密
    • 1、打开腾讯云视频开启key防盗链
    • 2、导入csv文件到数据库
    • 3、加密

前言

上传到腾讯云上面的视频,如何实现防盗链?

当我们的视频放到,腾讯云上面,播放的时候如何实现指定过期时间,防止他人盗刷流量,这就要用到,腾讯云key防盗链技术,这个技术有什么用呢?

  • 视频 URL 中指定过期时间,他人获取后无法长期使用
  • 在视频 URL 中指定最大允许播放 IP 数,他人获取后不能无限制地分发给更多人观看
  • CDN 节点检查视频 URL 中的参数和签名,对视频播放请求进行控制。如果请求检查不通过,则返回403响应码

接下来就是怎么用php实现了,大致过程也可以先查看一下官方文档了解一下过程。

实现加密

1、打开腾讯云视频开启key防盗链

这是一串加密密钥,先复制下来,接下来有用。

2、导入csv文件到数据库

把腾讯云上面的视频地址导出,然后导入到自己的数据库

里面会给到播放地址一些的东西

3、加密

代码可以用这个搬过去,只要把你的key替换一下,我用是tp6开发,获取数据库的数据,具体看自己项目,跟着来。

public function secret(Request $request)
{
        //分页处理
       $where = Util::getMore([
           ['page',1],
           ['limit',20]
       ]);
       $long = new Video();
       //获取数据
       $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']);
           //替换域名,可以根据自己的来,不改的话,会报错
           $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,发送数据,生成的key,可以用校正工具测试一下。如果报key无效,一般是生成的密钥不对,一步一步检查,发现错误并改正。

到此这篇关于PHP实现腾讯云视频加密的示例代码的文章就介绍到这了,更多相关PHP视频加密内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2022-04-13

PHP 获取视频时长的实例代码

具体代码如下所示: /* * 获得视频文件的缩略图和视频长度 * @date 2018-05-16 * @copyright */ //获得视频文件的总长度时间和创建时间 根据视频长度判断是否失效 public function getTime($url) { //获取视频重定向后的链接 $location = locationUrl($url); //获取视频Content-Length $responseHead = get_data($location); $list1 = explode

六种php加密解密方法实例讲解

代码演示如下: 方法一 <?php function encryptDecrypt($key, $string, $decrypt){ if($decrypt){ $decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "12"); return $decrypted; }else{ $en

PHP调用ffmpeg对视频截图并拼接脚本

PHP脚本调用ffmpeg对视频截图并拼接,供大家参考,具体内容如下 目前支持MKV,MPG,MP4等常见格式的视频,其他格式有待测试 12P 一张截图平均生成时间  1.64s     100个视频,大概需要2分半左右 9P  一张截图平均生成时间  1.13s      100个视频,大概需要2分钟左右 6P  一张截图平均生成时间  0.86s      100个视频,大概需要1分半左右 3P  一张截图平均生成时间  0.54s      100个视频,大概需要1分钟左右 <?php d

php实现ffmpeg处理视频的实践

最近有一个项目需要使用ffmpeg处理视频,这里我写了一个demo,方便我们来实现视频操作 ffmpeg操作demo <?php namespace common\helpers; use common\models\Config; use common\models\VideoApiLog; use Yii; use yii\helpers\ArrayHelper; use common\helpers\Universal; use yii\helpers\FileHelper; use yi

PHP代码加密的方法总结

如何保护自己的PHP代码: 代码混淆+加密 实际加密算不上,具体实现思路就是把代码base64加密,然后对base64里的字符串进行字符串映射(随机生成字典混淆)然后eval执行 这种百分之百能被破解还原 代表代码如下: <?php function RandAbc($length = "") { // 返回随机字符串 $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; return s

php实现可逆加密的方法

本文实例讲述了php实现可逆加密的方法.分享给大家供大家参考.具体如下: 这里介绍的可以逆转加密类,没有密钥很难破解. PHP代码如下: <?php class encryptCalss { var $key=12; function encode($txt){ for($i=0;$i<strlen($txt);$i++){ $txt[$i]=chr(ord($txt[$i])+$this->key); } return $txt=urlencode(base64_encode(urle

go语言实现AES加密的方法

本文实例讲述了go语言实现AES加密的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import ( "fmt" "crypto/aes" "strings" ) func main(){ rb:=[]byte {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6}; b:=make([]byte,16); strings.NewReader("123456789012345

Go语言对字符串进行MD5加密的方法

本文实例讲述了Go语言对字符串进行MD5加密的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (     "crypto/md5"     "fmt"     "io" ) func main() {     h := md5.New()     io.WriteString(h, "welcome to jb51.net")     fmt.Printf(&quo

Java实现MD5加密的方法

本文实例讲述了Java实现MD5加密的方法.分享给大家供大家参考.具体实现方法如下: import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5HashUtil { private MessageDigest md = null; private static MD5HashUtil md5 = null; private static final char

iOS给密码进行加密的方法

一,工程图. 二,代码. #import "ViewController.h" #import "Base64CodeByteFunc.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typic

基于php实现的php代码加密解密类完整实例

本文实例讲述了基于php实现的php代码加密解密类.分享给大家供大家参考,具体如下: php 代码加密类,大家可以根据自己的需求进行修改,原类如下,该实例在ubuntu下测试没有问题. <?php class Encryption{ private $c='';//存储密文 private $s='',$q1,$q2,$q3,$q4,$q5,$q6;//存储生成的加密后的文件内容 //如果不设置一个值,isset会表示不存在: private $file='';//读取文件的路径 private

php结合md5实现的加密解密方法

本文实例讲述了php结合md5实现的加密解密方法.分享给大家供大家参考,具体如下: 最近在整理代码发现了一个不错的东西,结合md5的加解密算法.网上关于php结合md5的加密,解密算法比较少的,其实php手册里面就有,改一改就行了.在此贴一下,用这算法要加载一个php模块mcrypt,不然用不了. //加密 function string2secret($str) { $key = "123"; $td = mcrypt_module_open(MCRYPT_DES,'','ecb',

python实现DES加密解密方法实例详解

本文实例讲述了python实现DES加密解密方法.分享给大家供大家参考.具体分析如下: 实现功能:加密中文等字符串 密钥与明文可以不等长 这里只贴代码,加密过程可以自己百度,此处python代码没有优化 1. desstruct.py DES加密中要使用的结构体 ip= (58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32,

go语言使用RC4加密的方法

本文实例讲述了go语言使用RC4加密的方法.分享给大家供大家参考.具体分析如下: 这里需要使用rc4包来实现rc4加密,核心代码如下: 复制代码 代码如下: key := []byte{ 1, 2, 3, 4, 5, 6, 7 } c, err := rc4.NewCipher(key) dst := make([]byte, len(src)) c.XORKeyStream(dst, src) 希望本文所述对大家的Go语言程序设计有所帮助.