首页 > 编程语言 >C# 解密m3u8 ts视频文件为mp4

C# 解密m3u8 ts视频文件为mp4

时间:2024-04-20 15:00:30浏览次数:23  
标签:aes m3u8 C# 解密 Length key16 视频文件 new byte

代码:

 try
 {
     //读取的加密视频ts文件路径
     byte[] encodeBuffer = File.ReadAllBytes("C:\\Users\\admin\\Downloads\\322251.ts");
     /// A216DF0DA0082028163781ECC258BA5B代表winhex看到的字符串  32734893fb097a767c9ea903936a6d8b代表m3u8文件中的iv偏移
     byte[] decodeBuffer = Decrypt(encodeBuffer, "A216DF0DA0082028163781ECC258BA5B", "32734893fb097a767c9ea903936a6d8b");
     //将ts视频文件解密mp4文件保存
     File.WriteAllBytes("C:\\Users\\admin\\Downloads\\322251解密后的视频.mp4", decodeBuffer);
 }
 catch (Exception ex)
 {
     Debug.WriteLine(ex.Message);
     Console.WriteLine(ex.Message);
 }

拿到key文件对应的key

 拿到key 拿到偏移量iv

 

代码

 

        public static byte[] Decrypt(byte[] cipherTextBytes, string key16, string iv16)
        {   // 确保字符串长度是偶数
            if (key16.Length % 2 == 1)
            {
                throw new ArgumentException("The hex string length must be even.");
            }
            if (iv16.Length % 2 == 1)
            {
                throw new ArgumentException("The hex string length must be even.");
            }

            byte[] buffkey = new byte[key16.Length / 2];
            for (int i = 0; i < key16.Length; i += 2)
            {
                var tempkey = key16.Substring(i, 2);
                buffkey[i / 2] = Convert.ToByte(tempkey, 16);
            }
            byte[] buffiv = new byte[key16.Length / 2];
            for (int i = 0; i < iv16.Length; i += 2)
            {
                var tempkey = iv16.Substring(i, 2);
                buffiv[i / 2] = Convert.ToByte(tempkey, 16);
            }
            // 确保密钥和IV长度正确(128位,即16字节)
            byte[] keyBytes = buffkey.ToArray();
            byte[] ivBytes = buffiv.ToArray();

            // 创建RijndaelManaged对象用于解密
            using (RijndaelManaged aes = new RijndaelManaged())
            {
                aes.Key = keyBytes;
                aes.IV = ivBytes;
                aes.Mode = CipherMode.CBC;
                aes.Padding = PaddingMode.PKCS7;

                // 创建解密器
                ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);

                // 创建MemoryStream以用于解密
                using (MemoryStream msDecrypt = new MemoryStream(cipherTextBytes))
                {
                    using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
                    {
                        // 读取解密后的字节
                        byte[] decryptedBytes = new byte[cipherTextBytes.Length];
                        csDecrypt.Read(decryptedBytes, 0, decryptedBytes.Length);

                        return decryptedBytes;
                    }
                }
            }
        }

 

写个C#控制台,粘贴程序,修改参数就可以跑了 

 

附录一张图片

 

标签:aes,m3u8,C#,解密,Length,key16,视频文件,new,byte
From: https://www.cnblogs.com/JohnnyLei/p/18147699

相关文章

  • 性能测试——性能测试-linux监控工具-Centos7.x安装Node_exporter
    参考小菠萝博客笔记:https://www.cnblogs.com/poloyy/p/12375039.html 小菠萝是在一个服务器上面装的,我是2个服务器分别装的,下面需要新增一个命令:useraddprometheus    NODE_PATH='/data/prometheus/node_exporter/'cd/usr/local/src/mkdir-p${NODE_PATH}wget......
  • 国内chatGPT中文版网站有哪些?国内人工智能百花齐放!该如何选择?
    人工智能技术在中国的快速发展和普及,使得国内的人工智能产业日益壮大。在这些领域中,自然语言处理技术和聊天机器人已经取得了显著的进展。ChatGPT作为一种基于深度学习的聊天机器人模型,在国内得到了广泛的关注和应用。目前,有几个国产ChatGPT中文版网站备受瞩目。国产chatGPT汇总:......
  • WCHN-CTseg
    WCHN-CTseg前两天我们装了Matlab和SPM12两个软件,今天我们就来讲怎么运行这个CTseg(这是一个可以进行脑CT分割、归一化、颅骨剥离和总脑/颅内容积计算的一个算法~)下载所需包首先要下的两个软件:Matlab和SPM12,详情请看这里:Matlab安装及添加SPM12-Ray-Z-博客园(c......
  • MVCC学习圣经:一文穿透MySQL MVCC,吊打面试官
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • docker 数据卷查看以及数据删除
    如何清理您的Docker数据Docker不需要对系统进行配置更改…但它却使用大量的磁盘空间。短暂的使用后,通过下面命令您可能会震惊地看到一些可怕使用统计信息:dockersystemdf不过不用担心,Docker允许您从未使用的images,containers和volumes中回收磁盘空间。定期清理为了安全......
  • 性能测试——性能测试-linux监控工具-Centos7.x安装Prometheus
    此处参考小菠萝文档:https://www.cnblogs.com/poloyy/p/12375039.html 下载安装PrometheusPROM_PATH='/data/prometheus'mkdir-p${PROM_PATH}mkdir-p${PROM_PATH}/{data,conf,logs,bin}useraddprometheuscd/usr/local/srcwgethttps://github.com/prometheus/prom......
  • opencascade官网文档学习之OCCT-Shape healing (3)分析 TopoDS_Shape
    Analysis分析Analysisofshapevalidity形状有效性分析ShapeAnalysis软件包提供了用于分析拓扑形状的工具。在执行修复工具之前,没有必要通过这些工具检查形状,因为这些工具用于在修复工具内部执行修复之前的分析。但是,如果您愿意,这些工具可以独立于修复工具用于检测某些形状问......
  • 洛谷 P1204 [USACO1.2] 挤牛奶Milking Cows
    题意:给定n个区间,左端点和右端点表示工作开始时间和结束时间。求最长一直有人在工作的时间和无人工作的时间。思路:想到了并查集,还有差分树状数组,最后选择差分数组。左端点加,右端点减,然后一次遍历即可。总结:习惯性的在右端点+1的位置减少了1,但是不适用于这个题目的逻辑。因为在右......
  • CRT配色
    目录最终效果前言导入200种配色方案固定喜欢的配色自动循环配色关键字高亮导入时用的PY脚本浅色ini脚本深色ini脚本最终效果前言导入200种配色方案#$language="Python"#$interface="1.0"#ImportAdditionalColorSchemesIntoGlobalConfig.py''''Description:......
  • web server apache tomcat11-10-Class Loader
    前言整理这个官方翻译的系列,原因是网上大部分的tomcat版本比较旧,此版本为v11最新的版本。开源项目从零手写实现tomcatminicat别称【嗅虎】心有猛虎,轻嗅蔷薇。系列文章webserverapachetomcat11-01-官方文档入门介绍webserverapachetomcat11-02-setup启动web......