是否可以使用行业标准的加密技术(例如 PlayReady 和 AES-128)为 HTTP 直播流加密/解密较小的文件片段?
我不知道 iOS 中的默认 HLS 实现如何与 AES-128 加密配合使用 - 即,它是否仍然能够逐步下载部分片段 (TS) 和流式传输文件?还是必须下载完整文件,解密全部内容,然后才开始播放?
在我接触过的一些 PlayReady 客户端中,我观察到后一种方法(先完整下载)。但这似乎是为了获得安全性而对播放延迟做出的可怕妥协(也许没有办法解决)。
对这个主题的一些了解会很有帮助。谢谢!
P.S:引用技术文档或手册会很棒!
最佳答案
AES 使用 block 大小为 128 位的 block 密码。因此,如果解密程序知道 key 和 IV,它可以从第一个 block 返回明文——没有理由先解密整个段/片段。
我猜您看到的 PlayReady 实现只是基于文件执行,因为这样实现起来稍微容易一些。但没有技术原因要求客户端在开始解密之前需要检索整个文件。
您可以通过使片段/段非常大并检查客户端行为来验证客户端正在做什么。
通过快速搜索,我找到了这个正在解密 HLS 的项目,内容如下: https://code.google.com/p/mlbtv-hls-nexdef/source/browse/trunk/mlb.c
关于ios - 为 HTTP Live Streaming 加密/解密部分文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16261766/