解密HLS中的AES加密
生活随笔
收集整理的這篇文章主要介紹了
解密HLS中的AES加密
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
解密HLS中的AES加密
?
主題?加密解密
如果m3u8文件中包含#EXT-X-KEY字段,那么可以斷定這個(gè)HLS中的ts文件是被加密的,如:
#EXTM3U#EXT-X-VERSION:3#EXT-X-TARGETDURATION:11#EXT-X-MEDIA-SEQUENCE:0#EXT-X-KEY:METHOD=AES-128,URI="https://drm.fptplay.net/secure/vod_decrypt2?token=eyJoYXNoX3ZhbHVlIjogImRiMGM3YjExNmVkNjRhMmE4ZGQ0NTg4NWEwMDc1M2VkIiwgInZpZGVvX2lkIjogIjU1NzgyZTgzMTdkYzEzMjg2NzljZjJkMCIsICJzZXJ2ZXJfdGltZSI6IDE0NTYyMTc2ODUsICJ2YWxpZF9taW51dGVzIjogNzIwfQ"#EXTINF:10.0,media_0.ts?token=eyJoYXNoX3ZhbHVlIjogImRiMGM3YjExNmVkNjRhMmE4ZGQ0NTg4NWEwMDc1M2VkIiwgInZpZGVvX2lkIjogIjU1NzgyZTgzMTdkYzEzMjg2NzljZjJkMCIsICJzZXJ2ZXJfdGltZSI6IDE0NTYyMTc2ODUsICJ2YWxpZF9taW51dGVzIjogNzIwfQ#EXTINF:10.0,media_1.ts?token=eyJoYXNoX3ZhbHVlIjogImRiMGM3YjExNmVkNjRhMmE4ZGQ0NTg4NWEwMDc1M2VkIiwgInZpZGVvX2lkIjogIjU1NzgyZTgzMTdkYzEzMjg2NzljZjJkMCIsICJzZXJ2ZXJfdGltZSI6IDE0NTYyMTc2ODUsICJ2YWxpZF9taW51dGVzIjogNzIwfQ每個(gè)HLS文件都被使用AES-128方法加密,而解密的key文件可以通過URI指定的方式獲得。
解密步驟如下:
1. 獲取key文件,在HLS文件中找到#EXT-X-KEY,有一個(gè)uri,下載下來是16個(gè)字節(jié)的密鑰
$ strkey=$(hexdump -v -e '16/1 "%02x"' key)2. 下載ts文件,針對每個(gè)ts文件(media_0.ts),從0開始按順序編號(變量index)3. 將編號格式化成32字節(jié)長的字符串作為iv
$ iv=$(printf '%032x' $index)4. 解密ts文件:
$ openssl aes-128-cbc -d -in media_0.ts -out media_decryptd_0.ts -nosalt -iv $iv -K $strkey另外,通過FFmpeg接收該HLS,則會(huì)自動(dòng)完成解密操作。
總結(jié)
以上是生活随笔為你收集整理的解密HLS中的AES加密的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: F4V 封装格式详解(一)-------
- 下一篇: ffmpeg参数中文详细解释