准备
- 一个m3u8文件
- 一个支持查看16进制的文本编辑器(比如ue)
- openssl
测试地址
aHR0cHM6Ly93eC4yMzMuY29tL3NlYXJjaC92MS9zdHVkeS8/bWlkPTM0MTU2
找到M3U8文件
aHR0cDovL2hscy52aWRlb2NjLm5ldC80YWRmMzdjY2MwLzcvNGFkZjM3Y2NjMDQ4ZGExNWRkOTNkNjAzNThjYjdkMjdfMi5tM3U4
查看文件内容
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-KEY:METHOD=AES-128,URI="http://hls.videocc.net/4adf37ccc0/7/4adf37ccc048da15dd93d60358cb7d27_2.key",IV=0xfae721f7c61ccb9f8d986454e8e923b9
#EXT-X-TARGETDURATION:17
#EXTINF:13.080000,
http://uc-mts.videocc.net/4adf37ccc0/0/1234567890123/7/cb/7d/27_2/4adf37ccc048da15dd93d60358cb7d27_2_0.ts
#EXTINF:10.000000,
-
重点是EXT-X-KEY中的内容
method是视频加密方式:
AES-128
,Key的地址:
http://hls.videocc.net/4adf37ccc0/7/4adf37ccc048da15dd93d60358cb7d27_2.key
(需要下载该文件),IV是偏移量:
0xfae721f7c61ccb9f8d986454e8e923b9
, -
EXTINF中的内容包含了很多个
ts
后缀的视频文件:http://uc-mts.videocc.net/4adf37ccc0/0/1234567890123/7/cb/7d/27_2/4adf37ccc048da15dd93d60358cb7d27_2_0.ts
解密步骤
-
获取key文件16进制的值
用ue或者其他编辑器都可以,结果如下
把16进制的值(5D 18这些)复制出来就可以
-
获取IV
文件中已经有了IV的值,我们只需要去掉前面0x,然后取前16位的字符作为iv
-
下载一个ts结尾的文件
-
最后一步,利用openssl工具对这个ts视频文件进行解密
openssl.exe aes-128-cbc -d -in 加密的ts视频文件路径 -out 输出的ts视频文件目录 -iv 第二步取到的值 -K 第一步取到的16进制
思路
- 在文件中找到视频的加密方式METHOD
- 在文件中找到key的地址
- 用ue或者其他16进制编辑器打开key,复制出16进制的值
- iv的值是去掉前面
0x
标志,取字符串前16位- 然后用openssl工具进行解密
仅供交流学习使用,请勿用于非法用途