(事先抱歉 - 我的英语非常糟糕)
我过去加密了几个* .ts文件。通常,有一个带有必要信息的* .m3u8,一个密钥文件和* .ts块。
示例:
文件来源:
https://support.jwplayer.com/customer/portal/articles/1430261-aes-content-protection
M3U8:
#EXTM3U
#EXT-X-VERSION:1
## Created with Unified Streaming Platform(version=1.6.7)
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:11
#EXT-X-KEY:METHOD=AES-128,URI="oceans.key"
#EXTINF:11, no desc
oceans_aes-audio=65000-video=236000-1.ts
...
我接下来要做的是,下载密钥文件" oceans.key"在#EXT-X-KEY中指定并创建内容的hexdump:
cat oceans.key | hexdump -e '16/1 "%02x" "\n"'
f571bfecfd1ab9adb05ce6fa030efd81
将序列号转换为HEX并使用左填充0填充' 16个八位字节',我得到初始向量并执行此语句来解密* .ts文件:
openssl aes-128-cbc -d -in oceans_aes-audio\=65000-video\=236000-1.ts -out decrypted.ts -K f571bfecfd1ab9adb05ce6fa030efd81 -iv 00000000000000000000000000000001
它就像一个魅力。总而言之,我在解密这些文件方面遇到了一些麻烦:
https://www.sendspace.com/filegroup/ajezM9HbgI3OI%2BY9%2BvUdJNnxYyXqGXX6K6jsNcrzYNc
名为' security'的文件是关键文件。当我十六进制转储其内容时,它是17个八位字节而不是16个。运行openssl命令我得到以下输出:
hex string is too long
invalid hex key value
我将该文件的内容与该主机中的其他文件进行了比较,并确认最后一个字符始终相同(0x5e / ^)。所以,我删除它并再次尝试 - 我的猜测是它是某种转义序列/行结束。到目前为止没有运气。结果是:
解密不好 140050579783384:错误:06065064:数字信封例程:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:529:这里有完整的命令:
openssl aes-128-cbc -d -in media_1496546273.ts -out media_1496546273.decrypt.ts -K aaf36c79be1fad3977a4e8b19e48f038 -iv 00000000000000000000000000008E97
我想过填充,nopadding,不同的密码,......到目前为止没有结果。 Chrome确实在流媒体播放文件时没有任何问题。
我将不胜感激任何帮助和暗示继续这一点。
BR