38 条回复  ·  628 次点击
qq78660651 小成 2024-9-11 09:32:34
你想要实现的功能 和 alist 的 crypt 的文件加密功能相似呀,可以参考他的代码。
下载学习资料,加密后上传云盘,云盘存储的是加密后的文件,然后云盘播放时,实时解码观看,等于小带宽换大带宽。
相当于客户端负责加密和解密,文件在云端是加密存储的。
purringpal 小成 2024-9-11 09:34:00
如果是特定用户才能看,你就把密钥分发给他们,至于前端加解密,聊胜于无吧
lyxxxh2 小成 2024-9-11 09:34:07
@newbie111

"不也是存放在前端项目的.env 里,只要解密 key 不暴露即可"
`next.js`我没用过,但听过,`next.js` 严格来说是后端。

跟 laravel 差不多, `.env`客户不知道。
如果我在模板引擎:
```
<script>
key = {{ env('key') }}
</script>
```
客户浏览器可以看得到吧。
***
或许你说我不定义,那 js 怎么拿 key 解密?
除非你有个登录,让用户绑定 key 。
SingeeKing 小成 2024-9-11 09:38:14
这种我做过,基于 hls.js 改的,但是 100u 确实少了点
wen20 小成 2024-9-11 09:39:42
.ts 都是绝对路径的话,可以试下。
ppddtt 小成 2024-9-11 10:21:21
这样做没有意义,本质上还是本地解密,客户端包含密钥信息
dyllen 小成 2024-9-11 10:31:28
@newbie111 你这话好多问题,前端项目的.env 文件并不在前端,那是在服务器保存的,并不会暴露。人家说的前端指浏览器端,不是你这前端项目。aes 加密,浏览器播放端要解密,必定需要密钥,别人就能拿到。
tool2dx 初学 2024-9-11 10:35:46
还不如学 youtube ,直接把视频接口从 get 都改成 post 。

个人感觉,把后端鉴权做好就够了,保证走你自己加密的 js 那一套 web 流程。
EridanusSora 小成 2024-9-11 11:03:45
视频加密的正确方法:上 DRM ,比如 widevine
easydou 小成 2024-9-11 11:10:30
加密 m3u8 的话,也可以用国内的一些厂商产品,比如保利威,阿里云等。如果自己写的话,最好打包成 wasm ,这样破解难度高,解密速度也比直接 js 解密要快
返回顶部