当前位置: 代码迷 >> 综合 >> python 解密 M3U8 AES 加密的视频
  详细解决方案

python 解密 M3U8 AES 加密的视频

热度:4   发布时间:2024-02-24 05:43:34.0

从浏览器下载的M3U8格式视频有时会被AES加密。windows下解密AES需要安装pycryptodome 模块和pycrypto模块,使用conda或pip安装这两个模块。

conda install pycryptodome
conda install pycrypto

安装完成后在Python文件中导入AES包,进行解密操作。M3U8一般使用CBC方式加密,key一般会与ts文件在同一目录,记事本打开key文件即可获取。iv需要从M3U8文件中获取。使用记事本打开此文件,如果属性列表出现 IV,则使用该值;如果未出现,则默认使用EXT-X-MEDIA-SEQUENCE作为 IV 值。使用大端字节序,往左填充 0 直到序列号满足128位,一般为全0。
示例代码如下。

from Crypto.Cipher import AESdef decryptSingleAES( src,dec,key,iv ): try:f1 = open(src, 'rb')f2 = open(dec, 'wb')part = f1.read()  cipher = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv)plain_data = cipher.decrypt(part)if part:f2.write(plain_data)  finally:if f1:f1.close()if f2:f2.close()if __name__ == '__main__':src='D:\\test\\old.ts'dec='D:\\test\\new.ts'key='9999999999999999'iv=b'0000000000000000'decryptSingleAES( src,dec,key,iv )