Heim >Backend-Entwicklung >PHP-Tutorial >七牛云存储 - 七牛php SDK 如何对HLS进行加密?

七牛云存储 - 七牛php SDK 如何对HLS进行加密?

WBOY
WBOYOriginal
2016-06-06 20:35:502170Durchsuche

使用的是PHP的SDK,请问如何对视频进行HLS加密处理?

参考如下,hlsKey为base64_urlsafe,这个好理解,但是hlsKeyUrl是什么呢?PHP怎么生成以RSA的OAEP加密方式的hlsKeyType呢?

http://developer.qiniu.com/docs/v6/api/reference/fop/av/segtime.html

hls加密

hls加密是利用AES-128位对每个ts文件进行加密,播放器在取得PlayList文件的时候,会根据里面的#EXT-X-KEY标签请求获得解密的URL,再请求解密秘钥,之后会用秘钥对获取的ts文件解密。用户可以对秘钥的URL做cookie验证等方法来对用户做认证。 例子:PlayList文件 (复制链接,查看文件内容或直接用vlc播放器播放)

参数解释:

  • hlsKey base64_urlsafe编码或加密过后的秘钥
  • hlsKeyUrl 指定了秘钥放置的url,经过base64_urlsafe编码,这是生成m3u8 PlayList会使用到的
  • hlsKeyType 指定了传送秘钥的方式

    • 不指定或者指定为0,则仅仅是以base64_urlsafe编码的方式传送
    • 指定为1.x(1.0, 1.1, …),以RSA的OAEP加密方式,再以编码传送秘钥,x表示秘钥的版本
    • 公钥:1.0

回复内容:

使用的是PHP的SDK,请问如何对视频进行HLS加密处理?

参考如下,hlsKey为base64_urlsafe,这个好理解,但是hlsKeyUrl是什么呢?PHP怎么生成以RSA的OAEP加密方式的hlsKeyType呢?

http://developer.qiniu.com/docs/v6/api/reference/fop/av/segtime.html

hls加密

hls加密是利用AES-128位对每个ts文件进行加密,播放器在取得PlayList文件的时候,会根据里面的#EXT-X-KEY标签请求获得解密的URL,再请求解密秘钥,之后会用秘钥对获取的ts文件解密。用户可以对秘钥的URL做cookie验证等方法来对用户做认证。 例子:PlayList文件 (复制链接,查看文件内容或直接用vlc播放器播放)

参数解释:

  • hlsKey base64_urlsafe编码或加密过后的秘钥
  • hlsKeyUrl 指定了秘钥放置的url,经过base64_urlsafe编码,这是生成m3u8 PlayList会使用到的
  • hlsKeyType 指定了传送秘钥的方式

    • 不指定或者指定为0,则仅仅是以base64_urlsafe编码的方式传送
    • 指定为1.x(1.0, 1.1, …),以RSA的OAEP加密方式,再以编码传送秘钥,x表示秘钥的版本
    • 公钥:1.0

php中调用持久化处理(音视频处理)的文档可以参考 http://developer.qiniu.com/docs/v6/sdk/php-sdk.html#av-hls

如果要进行切片的加密,只需要修改$fops的值,修改为譬如avthumb/m3u8/segtime/10/hlsKey/<hlskey>/hlsKeyType/<hlskeytype>/hlsKeyUrl/<hlskeyurl></hlskeyurl></hlskeytype></hlskey>

  1. <hlskey></hlskey>明文为16个字节,用切片文档提供的方法,使用七牛提供的公钥和下面的命令对明文进行加密:
<code>$ echo -n [AES128KEY] | openssl rsautl -encrypt -oaep -inkey [QINIU_PUB_KEY_FILE] -pubin | openssl base64 -A | tr "+/" "-_"
</code>
  1. 如果<hlskey></hlskey>的值为密钥明文的base64编码,那么<hlskeytype></hlskeytype>值为0;如果<hlskey></hlskey>的值为七牛公钥加密的密文,那么<hlskeytype></hlskeytype>值可以写1.0

  2. <hlskeyurl></hlskeyurl>就填写密钥明文存放的地址,一般为你的业务服务器地址,通过业务服务器相关流程控制对这个url的访问权限。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn