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

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

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

    背景

    喜欢的话就给个小星星。

    功能

    已支持的功能

    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  
       2023-07-30 03:27:03 +08:00
    搭建在搭了 alist 的 vps 上,上传和下载是不是取决于 vps 的速度?打算搭在 vps 上分享视频给朋友
    wangshushu
        22
    wangshushu  
       126 天前
    这个跟 alist 官方的 Crypt 驱动,对比之下有啥优劣呢?貌似 Crypt 驱动也能解决这个问题,测试了一下是可行的,具体性能没测试。
    另外现在 NAS 上从 docker hub 拉镜像太困难了,从 Windows 上拉完导出,又不支持 arm 架构。希望能提供不同架构的镜像下载,手动导入。
    byte10
        23
    byte10  
    OP
       126 天前
    @wangshushu 嗯,它那个是集成在 alist 是方便一些,我也是透明代理了。我这个也有 exe 打包好的,还有安卓的。优点的话,应该是算法公开,实现简单。
    wangshushu
        24
    wangshushu  
       125 天前
    @byte10 感觉 lz 解释,之前确实是 arm 的 docker 镜像拉不下来,最后发现了 alist 官方的功能。感谢你做出的这个项目,我非常喜欢这个理念,加油!
    wangshushu
        25
    wangshushu  
       124 天前
    @byte10 我找到一个缺点了,官方 crypt 开启之后,会影响整个 alist 的传输速度,降到 1M 以内。。。。。麻烦问下 exe 打包好的可以在哪里下载? GitHub 没看到
    byte10
        26
    byte10  
    OP
       124 天前
    @wangshushu 可以下载源码进行打包,好像也有其他人 fork 了,他们配置 action 就可以打包,我还不会配置。或者你加我 qq: 312160 四,我发你呗。邮箱留我,我发你也可以。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1068 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:46 · PVG 03:46 · LAX 11:46 · JFK 14:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.