【问题标题】:How to decrypt AWS Elastic Transcoder HLS AES encryption video to play .m3u8?如何解密 AWS Elastic Transcoder HLS AES 加密视频以播放 .m3u8?
【发布时间】:2017-06-22 12:45:12
【问题描述】:
我使用带有No Store 选项的 AWS 弹性转码器 HLS AES 内容保护来加密我的 .m3u8 文件,如以下文档所述,它会自动生成一组加密密钥、加密密钥 MD5 和加密初始化向量。
HLS AES protection with no store
我尝试使用带有 aws-sdk 的 KMS decrypt api 的加密密钥来访问 ARN(我在管道中指定),但得到了 InvalidCiphertextException 错误。
aws-sdk decrypt api
我的问题是,我怎样才能解密加密密钥并获得一个实际的密钥(我称之为内容密钥),用于播放 .m3u8 文件?
【问题讨论】:
标签:
amazon-web-services
http-live-streaming
m3u8
amazon-elastic-transcoder
【解决方案1】:
在这里我找到了解决方案!使用 AWS KMS decrypt 并插入参数如下:
const kmsDecryptparams = {
CiphertextBlob: Buffer.from(dataKey,'base64'),
EncryptionContext: {
service: 'elastictranscoder.amazonaws.com'
}
};
官方文档没有给出任何答复,但你可以找到一些参考here。
【解决方案2】:
有一种更简单的方法:当没有存储的 Elastic Transcoder 作业完成后,再次打开该作业并单击任何变体播放列表旁边的锁。它在弹出窗口中显示解密值,您可以将其保存为文件。此值已解密。