V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
byte10
V2EX  ›  分享创造

alist-encrypt 可直接播放加密视频,云盘资源再也不怕被和谐了, NAS 可以撤掉了

  •  
  •   byte10 · 2023-04-06 17:05:39 +08:00 · 2349 次点击
    这是一个创建于 386 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    喜欢的话就给个小星星。

    功能

    已支持的功能

    1. 支持 alist 网页在线播放加密的视频,查看图片,在线下载等。
    2. 支持 alist 网页跳转到 IINA ,VLC ,Infuse 等播放器上进行播放。
    3. 在 webdav 客户端上的所有操作都是透明,上传自动加解密,可播放加密视频、查看图片等。
    4. 据文件夹的命名规则 自动解密别人分享的内容。
    5. 设置不同目录 不同密码加密。
    6. 提供 cli 程序进行文件解密\加密,用于分享对方在下载后解密。
    7. 支持编译成可执行文件,可以在多平台上直接运行。虽然体积不不上 go ,但是也算减低门槛。

    待实现功能

    1. 可以把未加密(或已加密)的文件夹 A (或文件) -> 转存到加密文件夹 B 中,用于转存别人分享的文件。
    2. 支持可选加密文件名。
    3. 后续还会移植到安卓的 Auto.js App 中运行。

    现况

    最近发布的版本已加入了 AES-CTR 流式加密算法,之前一直纠结 RC4 算法是否足够安全的问题,现在总算完美了。AES 有 cpu 指令加持的情况下,速度非常快,s905l3a 可以跑到近千兆,其他的 cpu 更加不用说了。

    目前项目还很初期,算法应该是确定下来了,对大型的 nodejs 项目,我还不是很有经验,可优化的地方还很多。希望有 nodejs 开发经验的小伙伴来帮忙维护,希望它也来越好吧。

    这个项目意义很大,应该可以让云盘火起来,相信愿意使用网盘的用户会越来越多。

    shyrock
        1
    shyrock  
       2023-04-06 18:34:11 +08:00
    是用 alist 放自己 nas 的视频?还是用 alist 放阿里云盘的视频?
    byte10
        2
    byte10  
    OP
       2023-04-06 18:48:07 +08:00
    @shyrock 是 alist 播放阿里云盘的视频,任何云盘的视频 。这个 alist-encrypt 服务其实可以理解为 nginx ,它拦截了上传的流量和下载的流量,自动加解密。 真的很强,透明的传输,中间不产生文件。你可以体验一下,看看演示的视频就知道了。
    NeverBB
        3
    NeverBB  
       2023-04-06 21:20:40 +08:00 via Android
    你干了我一直想干的事情,谢谢兄弟
    byte10
        4
    byte10  
    OP
       2023-04-07 08:26:18 +08:00
    @NeverBB 嗯,低调使用。算法是公开的,RC4-md5 和 aes-ctr ,密匙就是你的密码,iv 就是文件大小。任何时刻都可以恢复你的文件哦,还是很不错的。可以低调推广下😄
    musi
        5
    musi  
       2023-04-07 08:44:11 +08:00
    “它拦截了上传的流量和下载的流量”
    那我的带宽不就受到这个代理服务器的影响了?除非把这玩意装到本机,不过你用 node 开发的我手机怎么办
    musi
        6
    musi  
       2023-04-07 08:46:08 +08:00
    @musi #5 也不对,如果做成客户端就变成端到端加密了,那也没必要选这个了
    byte10
        7
    byte10  
    OP
       2023-04-07 10:33:40 +08:00   ❤️ 1
    @musi 首先这个 encrypt 就是要安装到局域网中的设备,比如你家里的 nas 或者 arm 盒子。如果是你的手机,那么可以安装 autojs 可以运行这个项目(还没兼容,后续会加上)或者使用 termux 进行运行部署。你可以看看视频的演示。

    encrypt 就是一个类似 nginx 的一样的东西,你可以部署到任意地方 进行反向代理流量,会自动加解密。它依赖 alist ,所以你需要部署一个 alist ,这个 alist 你可以部署到任意地方,云端也可以,不影响速度,因为 alist 的资源都是 302 。

    这个项目意义很大,可以了解下。
    byte10
        8
    byte10  
    OP
       2023-04-07 10:42:20 +08:00
    @musi 其他的端到端加密,大多数都无法做到在线播放加密视频吧?我这个用的是流加密算法,可以在任意位置进行加解密 。
    musi
        9
    musi  
       2023-04-07 10:55:59 +08:00
    @byte10 #7 标题上"NAS 可以撤掉了",我自己有 NAS 就不需要这个了,手机上使用还是过于麻烦,思路挺好,但意义一般
    musi
        10
    musi  
       2023-04-07 10:56:44 +08:00
    @byte10 #8 视频加密也很常见,比如视频点播,业界都是使用流式加密
    byte10
        11
    byte10  
    OP
       2023-04-07 11:58:28 +08:00
    @musi 虽然你说很常见,但是我没看到有类似的产品,按道理这个网盘加密需求还是很硬核的。NAS 的需求 有一部分的原因就是不相信云盘,有了加密之后,这部分朋友就没必要使用 nas 了,我的就是其中一个。也有人用了这个加密,准备卖掉 nas 的。网盘不限速度的情况下,还是不错的。
    musi
        12
    musi  
       2023-04-07 13:15:00 +08:00
    @byte10 你这所谓的网盘加密就是普通端到端加密,这个有很多工具可以实现,流式看视频,这个用 ffmpeg 切片可以实现,而且你这 iPhone 基本没法用,还是要在局域网搭一个服务,我都在局域网有服务了直接用硬盘不香嘛
    codingBug
        13
    codingBug  
       2023-04-07 14:07:46 +08:00
    如果我都部署到服务器上,上传下载走的服务器带宽吗?那我播放的时候走的 302 ,是不是需要在本地启动一个 alist-encrypt
    byte10
        14
    byte10  
    OP
       2023-04-07 17:20:45 +08:00
    @codingBug 如果你的 alsit 部署到服务器云端,那么上传的时候用的就是云端的带宽。如果是下载,一般默认就是 302 ,最好就是本地部署一个 alist-encrypt ,后续会支持安卓 app 的 autojs 。目前也支持打包成可执行文件,windows 使用也很方便,直接运行。其他就是 docker 运行比较方便了。
    byte10
        15
    byte10  
    OP
       2023-04-07 17:39:35 +08:00
    @musi ffmpeg 分片的加解密不太清楚,复杂了一些。Iphone 确实只能在局域网内使用,如果部署 encrypt 到云服务器也不是不行。总之是一个还不错的方案,可以代替部分 nas 需求。50 包邮一个 arm 盒子就可以做到全云盘 的资源的播放和查看,还是很香的。如果它能确保 云盘安全的情况下,应该会有人去使用这样的的方案把,现在的网盘很多都不限速了,等于你的资源 放更大的局域网中了,速度没问题的。
    goodryb
        16
    goodryb  
       2023-04-07 17:55:44 +08:00
    感觉还不错,期待出稳定版本
    MeteorVIP
        17
    MeteorVIP  
       2023-04-08 07:18:54 +08:00 via iPhone
    看完视频了,非常厉害呀
    byte10
        18
    byte10  
    OP
       2023-04-08 08:58:14 +08:00
    @goodryb 嗯快了,算法加了 AES-CTR 非常的稳,性能几乎无损耗,之前一直纠结算法的问题,现在就等把文件名加密解决一下。就可以发布稳定版。
    @MeteorVIP 其实实现很简单,判断上传还是下载,然后加密解密即可。核心代码,几百行。其他就是解决一些细节问题,一些云盘差异的问题。虽然很实现很简单,但是市面上却没有找到相关的产品,nodejs 跨平台还是很不错,也可以打包成可执行文件,虽然跟 go 比差那么一点。主要是 go 不熟悉,不太确定它的开发成本。而且后续支持在安卓 app 的 autojs 的上进行部署,算是一个小优点。
    MeteorVIP
        19
    MeteorVIP  
       2023-04-08 09:46:27 +08:00 via iPhone
    有一个小小的问题:分享给朋友,那朋友就知道密码咯?
    简单的说:密码是防网盘的检查,对网友来说是公开的是吧?
    最后一个问题:通过网盘直接下载加密过的文件。应该可以通过工具解密吧?
    byte10
        20
    byte10  
    OP
       2023-04-08 12:30:38 +08:00   ❤️ 1
    @MeteorVIP 1 、分享给朋友的时候,需要把加密的密码也分享,不过密码有替身,并不是直接分享原密码。而是分享你原密码的 sha256 值,不会导致你的原密码泄露。2 、可以通过工具解密的,原程序支持 cli ,前期可以直接本地 批量加密文件夹的文件,从云盘直接上传,后续使用全部在 encrypt 的上进行操作就好了,修改文本,上传图片 视频等都可以
    ouyangluofeng
        21
    ouyangluofeng  
       272 天前
    搭建在搭了 alist 的 vps 上,上传和下载是不是取决于 vps 的速度?打算搭在 vps 上分享视频给朋友
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2791 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:43 · PVG 11:43 · LAX 20:43 · JFK 23:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.