通过提供自己的密钥对HLS段进行加密

时间:2019-01-07 13:14:26

标签: amazon-web-services encryption hls aws-java-sdk aws-elastictranscoder

我正在尝试实现亚马逊弹性代码转换器。

到现在为止,我可以创建带有和不带有“ hlsContentProtection”的作业。当我不提供自己的密钥/ keymd5 / LicenseAcquisitionUrl时,如果aws生成密钥本身很好但是当我尝试提供自己的密钥时,它可以更好地工作其对视频进行加密,但加密后的片段无法使用我提供的密钥。(实际上,我不知道;我应该将要提供给“ LicenseAcquisitionUrl”的.key文件中提供哪些数据) 我正在执行以下步骤:

  

1 .//正在生成密钥

GenerateDataKeyResult dataKeyResponse = awsKmsClient .generateDataKey(keyRequest );
byte[] keyInBytes=Base64.encode(dataKeyResponse.getCiphertextBlob().array());
key=new String(keyInBytes);
  

2 .//生成密钥MD5

byte[] b=Base64.decode(keyInBytes);
    byte[] x=Md5Utils.computeMD5Hash(b);
keyMD5=new String(x);
  

3 .//以十六进制提供随机IV

     

4 .//最后:

 HlsContentProtection hlsContentProtection =new HlsContentProtection()
          .withKeyStoragePolicy("NoStore")
          .withMethod(aes-128)
          .withLicenseAcquisitionUrl("https://s3.amazonaws.com/****se-1**/test.key")
          .withInitializationVector("9uJyoNk5yggJ4winLp8E6w==")
          .withKey(keyInBytes)
          .withKeyMd5("j8M/upfoPERbSCv+7EjWgA==");



   CreateJobPlaylist playlist = new CreateJobPlaylist()
        .withName("hls_" + outputKey)
        .withFormat("HLSv3")
        .withHlsContentProtection(hlsContentProtection)
        .withOutputKeys( hls0400k.getKey(), hls0600k.getKey(), hls1000k.getKey(), hls1500k.getKey(), hls2000k.getKey()
        );
  

“现在我不确定应该在.key文件中放入什么。”

     

我无法播放加密的片段。

0 个答案:

没有答案