【问题标题】:Get Decryption key for aes 128 cbc without password for m3u8 video stream in Python在Python中获取aes 128 cbc的解密密钥,无需密码,用于m3u8视频流
【发布时间】:2021-01-13 08:05:21
【问题描述】:

我有一个通过将 m3u8 格式的视频流相加而编译的 video.ts 文件。我正在尝试使用以下语句解密视频。

   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': '.....'}

有没有办法使用这些信息来提取密钥进行解密。

【问题讨论】:

    标签: python encryption openssl aes m3u8


    【解决方案1】:

    您似乎正在对 HLS 流使用 AES-128 加密。

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

    EXT-X-KEY:

    • 方法:AES-128
    • URI:密钥服务器的 URL
    • KEYFORMAT:身份(或未指定 KEYFORMAT)

    以下示例(来自:https://docs.unified-streaming.com/documentation/drm/hls.html - 您也可以查看其他打包程序等的示例):

    #EXTM3U
    #EXT-X-VERSION:1
    #EXT-X-MEDIA-SEQUENCE:0
    #EXT-X-KEY:METHOD=AES-128,URI="https://license-server/video.key"
    #EXTINF:4, no desc
    video-audio=65000-video=236000-0.ts
    

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

    【讨论】:

    • 其实打开 URI 会出现这个错误 --> "Server Error in '/' Application"
    • @AbhiGupta - 听起来好像要提供密钥的任何服务器都没有设置为正确执行此操作。我认为您必须与该服务器的所有者或开发人员交谈。或者,如果您确实知道他们自己密钥,您可以从您自己的服务器上提供服务。
    猜你喜欢
    • 2018-04-04
    • 2013-04-14
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多