【发布时间】:2018-02-08 16:05:03
【问题描述】:
为什么我的代码无法解密 ts 段?
from Crypto.Cipher import AES
import requests as req
import os
import m3u8
with req.session() as req:
m3u = m3u8.load('https://svt1-a.akamaized.net/se/svt1/d132b755-8088-475e-91df-2c8f2de9cf6c/hls-v6/v6.m3u8')
key_url = m3u.keys[0].absolute_uri
seg = m3u.segments[0].absolute_uri
key = ''
for chunk in req.get(key_url,stream=True):
key+=chunk
cipher = AES.new(key, AES.MODE_CBC, os.urandom(16))
data = ''
for chunk in req.get(seg, stream=True):
data+=chunk
data = cipher.decrypt(data)
with open('ulk.ts','wb') as fil:
fil.write(data)
m3u8 网址是:
https://svt1-a.akamaized.net/se/svt1/d132b755-8088-475e-91df-2c8f2de9cf6c/hls-v6/v6.m3u8
来自 m3u8 的代码:
EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:4
#EXT-X-MEDIA-SEQUENCE:220662
#EXTINF:3.20000,
#EXT-X-KEY:METHOD=AES-128,URI="../key-d132b755-8088-475e-91df-2c8f2de9cf6c.ts"
v6-220662.ts
#EXTINF:3.20000,
v6-220663.ts
#EXTINF:3.20000,
v6-220664.ts
#EXTINF:3.20000,
v6-220665.ts
#EXTINF:3.20000,
v6-220666.ts
#EXTINF:3.20000,
v6-220667.ts
#EXTINF:3.20000,
v6-220668.ts
#EXTINF:3.20000,
v6-220669.ts
#EXTINF:3.20000,
v6-220670.ts
#EXTINF:3.20000,
v6-220671.ts
钥匙串:
'PB{\xf1\xb9\xf9.\xb7\x1d\xeb\x95\x8f=\xcd\x93\xce'
【问题讨论】:
-
尝试访问给定的 URL 以
Access Denied结尾 -
@Skandix 我现在已经用 m3u8 中的一些代码编辑了这个问题。这是一个地理区块。如果您使用一些瑞典代理或 vpn,您可以连接
-
您不能使用随机 IV 解密文件,您必须使用用于加密文件的相同 IV。通常,加密 IV 会预先添加到密码中。我不知道这里使用的是什么格式,你必须提供一些额外的信息。
-
@JamesKPolk 好吗?我已经从密钥文件中添加了密钥
标签: python encryption aes m3u8