openssl 解密 m3u8 文件出现 EVP_DecryptFinal_ex:wrong final block length:evp_enc.c:528 错误,求大神指点

2017-08-27 19:13:05 +08:00
 kaiqiu

下载到一个 3000K 码率 HLS 的 m3u8 文件,下载所有的 TS 文件再进行合并,单个 TS 文件容量 4.5G 多,用 openssl 进行解密,知道是 AES-128-CBC 解密,有 key 文件( 16 字节),用 hexdump 查看密钥发现是 32 字节的,用命令 openssl aes-128-cbc -d -in in_file.ts -out out_file.ts -nosalt -iv 00000000000000000000000000000001 -K XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 进行解密,解密到最后提示 error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length:evp_enc.c:528: 查阅过资料出现 EVP_DecryptFinal_ex 函数错误这提示有可能是还有没解密完的数据块,一般情况是密文不正确、不是块大小的整数倍才会出现没解密完的数据块,但是我尝试下载解密其他码率的 m3u8 文件(如 500K,1000K,2000K )用的都是同个密钥,都能成功解密,唯独这个 3000K 的解密出现问题,之后以为是文件下载不完全,后来又下载下载了一直想不通哪里出问题,是因为视频容量太大导致吗?还是我解密的方法有问题,因为这是我第一次解密超过 4G 的文件,过往成功解密都是小于 4GB 的 TS 文件,上面说到的解密出错的 3000K 文件,输出之后前半部分可以播放,后半部分就无法播放,本人 m3u8 菜鸟,望 V2EX 大神指点相救,谢谢了.

2390 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/386169

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX