使用OpenSSL解密一个.ts文件

8

所有文件都在相同的目录下。

M3u8 文件

#EXTM3U
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI=MyKeyFile.key
#EXTINF:10,
aes_ts_files/filesequence0000000.ts
#EXTINF:10,
aes_ts_files/filesequence0000001.ts
#EXTINF:10,
aes_ts_files/filesequence0000002.ts
#EXTINF:10,
aes_ts_files/filesequence0000003.ts
#EXTINF:10,
aes_ts_files/filesequence0000004.ts
#EXTINF:10,
aes_ts_files/filesequence0000005.ts
#EXTINF:10,
aes_ts_files/filesequence0000006.ts
#EXTINF:10,
aes_ts_files/filesequence0000007.ts
#EXTINF:10,
aes_ts_files/filesequence0000008.ts
#EXTINF:10,
aes_ts_files/filesequence0000009.ts
#EXTINF:10,
aes_ts_files/filesequence0000010.ts
#EXTINF:10,
aes_ts_files/filesequence0000011.ts
#EXTINF:10,
aes_ts_files/filesequence0000012.ts
#EXTINF:10,
aes_ts_files/filesequence0000013.ts
#EXTINF:10,
aes_ts_files/filesequence0000014.ts
#EXTINF:10,
aes_ts_files/filesequence0000015.ts
#EXTINF:10,
aes_ts_files/filesequence0000016.ts
#EXTINF:10,
aes_ts_files/filesequence0000017.ts
#EXTINF:10,
aes_ts_files/filesequence0000018.ts
#EXTINF:10,
aes_ts_files/filesequence0000019.ts
#EXTINF:10,
aes_ts_files/filesequence0000020.ts
#EXTINF:10,
aes_ts_files/filesequence0000021.ts
#EXTINF:10,
aes_ts_files/filesequence0000022.ts
#EXTINF:3,
aes_ts_files/filesequence0000023.ts
#EXT-X-ENDLIST

MyKeyFile.Key

tßâ0Äb‘˜p.ô[{m‚

我知道这个内容是合法的,因为如果我右键单击 .m3u8 文件并选择“使用 VLC 媒体播放器播放”,它就能工作。我需要解密 ts 文件,以便可以使用 ffprobe 检查内容。

这是我尝试过的 OpenSSL 命令:

openssl aes-128-cbc -d -kfile MyKeyFile.key -iv 0 -nosalt -in aes_ts_files/filesequence0000000.ts -out aes_ts_files/filesequence0000000_out.ts

错误信息: 解密失败 18676:错误:06065064数字信封例程:EVP_DecryptFinal_ex:解密失败:crypto\evp\evp_enc.c:529:


Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎不属于编程或开发范畴。请参阅帮助中心中的我可以在这里问什么样的问题。也许Unix&Linux Stack ExchangeInformation Security Stack Exchange更适合提问。 - jww
1
我同意并感谢您纠正我。今后我会更加注意我所提出的问题。 - user3541092
1个回答

8

-kfile 用于从文件的第一行存储的密码推导密钥。

你已经有了实际的密钥,所以需要使用 -K key 将其传递,其中 key 是十六进制的密钥(xxd -p MyKeyFile.key)。

IV 也是一个十六进制字符串,如果未指定,则等于媒体序列。


谢谢您的回复。我仍然遇到问题。提前为我的困惑道歉。 - user3541092
C:\OpenSSL-Win32\bin>openssl aes-128-cbc -d -p MyKeyFile.key -iv 0 -nosalt -in aes_ts_files/filesequence0000000.ts -out aes_ts_files/filesequence0000000_out.ts <br /> 输入 aes-128-cbc 解密密码: - user3541092
1
@user3541092 openssl aes-128-cbc -d -in encrypted_segment.ts -out decrypted_segment.ts -nosalt -iv <iv_hex> -K <key_hex> 其中 ivK 是以十六进制表示的(随机示例 -K 0ffa87119864cffd5f63f89106f1c1c2)。 - aergistal
@aergistal 我有一个.key文件,我该如何获取相应的十六进制字符串? - Script47
1
@Script47 答案已经在里面了:xxd -p MyKeyFile.key - aergistal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接