获取Python中m3u8视频流的aes 128 cbc解密密钥(无密码)

获取Python中m3u8视频流的aes 128 cbc解密密钥(无密码),python,encryption,openssl,aes,m3u8,Python,Encryption,Openssl,Aes,M3u8,我有一个video.ts文件,通过将m3u8格式的视频流添加到一起编译而成。我试图用下面的语句解密视频 subprocess.run(['openssl', 'aes-128-cbc','-K','[KEY]','-iv','[IV]','-nosalt','-in' ,'video.ts','- out','video_name.mp4']) 虽然,我有[IV]的值,但没有[KEY]。我确实有一个以下格式的“uri”链接,但当我使用浏览器打开它时,它会出错 'key': {'

我有一个video.ts文件,通过将m3u8格式的视频流添加到一起编译而成。我试图用下面的语句解密视频

   subprocess.run(['openssl', 'aes-128-cbc','-K','[KEY]','-iv','[IV]','-nosalt','-in' ,'video.ts','- 
   out','video_name.mp4'])
虽然,我有[IV]的值,但没有[KEY]。我确实有一个以下格式的“uri”链接,但当我使用浏览器打开它时,它会出错

 'key': {'method': 'AES-128',
  'uri': 'https://...',
  'iv': '.....'}

是否有办法使用此信息提取密钥进行解密。

看起来您正在HLS流上使用AES-128加密

您可以通过查看M3U8文件本身来检查这一点-您应该会看到一些信息,包括以下设置:

EXT-X-KEY:

  • 方法:AES-128
  • URI:密钥服务器的URL
  • KEYFORMAT:标识(或未指定KEYFORMAT)
下面的示例(来自:-您也可以看到其他包装商等的示例):

#EXTM3U
#EXT-X-VERSION:1
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI=”https://license-server/video.key"
#绝迹:4,没有描述
视频音频=65000视频=236000-0.ts

从上面显示的情况来看,您似乎只需要从“uri”获取密钥本身:https://...示例中的“”URI,然后在解密中使用它。

实际上,打开URI会出现此错误-->“应用程序中的服务器错误”@AbhiGupta-听起来好像任何提供密钥的服务器都没有正确设置。我认为您必须与该服务器的所有者或开发人员联系。或者,如果您确实知道他们为您自己设置了密钥,您可以从您自己的服务器为其提供服务器。