100u 有偿请前端老哥实现解密播放 m3u8 文件

8 天前
 newbie111

1.通过以下命令对影片的明文 m3u8 和 ts 文件进行加密( aes-ecb ):

openssl enc -aes-128-ecb -in decrypt/index.m3u8 -out encrypt/index.m3u8 -K $(echo -n "你自己任意指定的 16 位加密 key" | xxd -p)

openssl enc -aes-128-ecb -in decrypt/001.ts -out encrypt/001.ts -K $(echo -n "你自己任意指定的 16 位加密 key" | xxd -p)

2.前端页面请求到 m3u8 播放链接时解密文件并播放。

这里我上传了一个不到 10 秒的未加密素材供测试,当然你也可以自己找个 mp4 文件切片成 m3u8 然后本地测试解密播放,先提前谢过各位前端老哥了,一旦成功解密播放,立即支付 100u 表达谢意。我的理解是 hls.js 或 crypto.js 之类的库来解密,但我不是专业前端所以改起来有困难。。。 https://drive.google.com/drive/folders/1QPD_E6C34tND0hICVrWIemxjRL-RLnad?usp=sharing

5219 次点击
所在节点    React
57 条回复
newbie111
8 天前
抱歉各位,我这里有 12 小时时差,现在是早上 6 点 46 ,刚起床,已经有好几个人加我,我在确认。
k9982874
8 天前
问问 ai 用 js 怎么 sha256 加密解密文件不就完事了。。
Yaavi
8 天前
@newbie111 已收到 100u ,感谢老哥~
Yaavi
8 天前
newbie111
8 天前
抱歉 31 楼和其他加我的几位老哥,为节约大家时间,我优先加了在申请备注中提示“已按方案完成”的 Yaavi 老哥,验证后完美运行。31 楼老哥代码我刚跑了下,对比 Yaavi 老哥提供的代码,同样的 url ,会提示跨域,就没继续往下看了,感谢大家的帮忙,已转 yaavi 。
newbie111
8 天前
感谢 v 站,藏龙卧虎果然不虚。
joewang1988
8 天前
@newbie111

会提示跨域 --- 你把 m3u8 文件和 ts 文件放在同一个 domain 下就不会有跨域问题了。

我贴代码也是做个社会性测试。

呵呵 果然是不公平啊
joewang1988
8 天前
@azhangbing 感谢
joewang1988
8 天前
@Yaavi 看你代码写得不错。方便留个 wx 不 有前端的活。200 刀一个。
pxiphx891
8 天前
我理解,解密密钥应该在这个 js 文件里,谁能教教我,怎么找到解密密钥?我打断点找了半天也没找着

https://decipher-m3u8.yaavi.me/assets/index-DCANJRc2.js
GooMS
8 天前
掩耳盗铃
pxiphx891
8 天前
看了 github 源码,我知道了密钥是 1234567890ABCDEF ,谁能教教我,有什么方法能在只有混淆后代码的情况下,通过调试一步一步找到密钥?
wuzzispacelake
8 天前
@Yaavi 想提个问,简单看了一下代码,看起来 decryptTSAES 是拿去的 fetch 下来的全量 ArrayBuffer ,但是我个人理解对于 TS 这样的视频文件不是流式处理不会出问题吗
wuzzispacelake
8 天前
没事了,突然意识到是 m3u8 ,那么本身就是分片
Yaavi
8 天前
@joewang1988 没问题 -vsme- 含两头的 -
sunchuo
8 天前
@Yaavi star 了。感谢。
caola
8 天前
解密的密钥 key 放在 wasm 里面,多弄几个变量混淆一下密钥,还可以加入其他的参数进行校验(例如:服务器给出一个加密后的时间戳,wasm 解密这个参数后校验这个时间在一定的范围内就允许解密操作),然后再编译成二进制。一般能破解的概率小很多了。
js 把加密的数据和参数传入 wasm 解密后的数据反回给 js 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1071836

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX