开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[闲聊] 【T2O】喜报:可能是搓了个加密网盘

 发表于 2024-6-1 22:33:11|显示全部楼层|阅读模式 IP:北京
本帖最后由 teddyxlandlee 于 2024-6-1 22:35 编辑

省流:扫码下载原文如此加密原文如此精彩图片,感受隔壁BB群S之遗风




去年年底购买了一个域名:7c7.icu。尽管[ruby=几个月前]早些时候[/ruby]注册了 daozhi.de,但其名称只是用来玩梗的罢了(buwanyuanshen.daozhi.de | 不玩原神导致的、math.daozhi.de)。
当时有想过绑一个短域名平台,也确实绑了个 link.daozhi.de(匿名短链接,例如 link.daozhi.de/qNAEiH),……虽然 daozhi.de 还算短吧(和ads.google.com一样长)但是拿这么个名字用作正经用途,还是有点……怪怪的。
我还是想搞一个自己特色的域名,于是在预算允许的情况下,买了 7c7.icu。
关于 7c7 / #77cc77 这个符号,一年前我就开始用了(MBW页面)。
在 MCBBS 时代,也有人猜测这个符号是什么意思。
有说是一种颜色(后来我确实拿这个颜色作为 SPXX 翻译者的颜色);也有说是出自“寻寻觅觅,冷冷清清,凄凄惨惨戚戚
——后者是迄今为止最接近的答案了,这句诗确实是我使用这个符号的灵感。

域名够短,可以用来做很多事情。但是当时没想到啥,只是绑了个 a.7c7.icu 挂了个短链接服务(类似于 aka.ms/winget 那样的具名短链接)。



今年1月份,我找回了两年前落在不知何处的PGP公钥。
与此同时,我开始琢磨一些关于加密(非对称加密、对称加密)之类的问题。
正好我想起,好像是中国移动还是谁的短信里的“安全链接”好像是长这样:https://example.net/#XXXXXX
上网一查,果然#以后的内容不会主动传给服务端,也就是说除非有前端脚本主动上传,否则服务器即使知道文件路径,也永远不知道#后面的文件密码。

于是乎我打算搞一个加密的文件存放处:s.7c7.icu
(仅一个字符长的子域名“s”其实就说明了规划这个网站早有预谋)

我是先想好下载模块该怎么做的。毕竟预算有限,我秉持着在使用相对流畅的情况下,能用免费资源就用免费资源的思想。而静态托管站当然是免费的啦。
下载模块只需要静态网页就能运行——这就牺牲了直链下载(用wget、cURL直接获取文件内容)的功能,但是出于“加密文件存放处”的设计初衷,如果采用直链下载,那么密码必然会在互联网上传播,这就不好了。

然后下载模块的第一版雏形就有了。我当时画了纸质版的工作原理图,原件找不到了,但是还有照片,想要的E-mail我(teddyxlandlee@hotmail.com)。

同时也做了上传端的构想,最开始想的是做成纯网页(这样兼容性最好,甚至兼容手机浏览器):

  • 上传的时候,前端就自己生成一个密码,把文件按照特定的方式加密好,并且自行保管密码。
  • 把文件的元信息,包括(加密前的)文件名、文件大小、Hash等存入一个 meta json 中。
  • 如果文件加密后>4.0KiB,就给 data.s.7c7.icu 服务器发上传请求,服务器会把文件存下来,并且返回一个地址。文件内容会作为“引用”存入 meta json 中。
  • 如果文件加密后≤4.0KiB,就直接把文件内容塞进 meta json。
    这种文件reference方式,其实早在去年春天(4月份左右)就已经运用到终末之诗扩展补丁Mod(EPX)的推荐资源包下载了(前端代码哪来的后端),我也是在那时候知道有同源策略这个东西存在的。
  • 把 meta json 上传到 meta.s.7c7.icu。
  • 全程需要 upload.s.7c7.icu 提供的令牌。而获取令牌的验证方式,当时想采用的是 2FA App 的方式,不使用用户名密码,注册纯靠我自己后台上传。


当时也做出了上传端前端部分的雏形:upload.html(此页面设计中应当代理 https://upload.s.7c7.icu/
问题是我从来没有接触过后端,更不知道怎么白嫖 Netlify、Vercel 的空间和算力,好在这两年AI兴起,学习后端的成本比较低了,很多时候能看懂AI写出来的代码就够了
……
当时研究了两个周末没研究明白,留下一摊废代码,想要的E-mail我,反正跑不了。

遂摆烂。



其实现在三次元生活越来越繁忙,像这种不定期发作品都是诈尸级别的表现了。
嗯对,这个家伙在3月32号4月1号又突发奇想发了个模组:Poem Lover,当时在 HiMCBBS 和隔壁 MineBBS 发了帖。
它的功能是让玩家每次从末地回主世界都看一遍终末之诗,仅在客户端安装,服务端无需安装,可以在多人游戏用。
甚至留下了设计原稿(周六在学校写的

哦对,愚人节顺便留下了牢坛复活站MCBBS.daozhi.de两份整活作品,访问量都快破千了。

这次六一做这个,倒是没有像上次愚人节那样的契机。还在过六一?
就是突然想到,诶我这么个东西三个月之前就放弃了,但是它其实能做。
虽然通过后端的权限控制比较困难,但是我可以干脆放弃用户系统,并且假定有上传权限的人都是绝对守规矩的人!
——有点退而求其次,但是这样做一个标准的 Python 脚本,作为客户端 uploader,其实就够了。

——然后它就有了。(本来以为昨天晚上加今天上午就能干完,看来我还是太自信了)

现在这么个站基本就是可用的状态:存储白嫖GitHub,网站用Netlify;下载者只要有个链接就能用浏览器下载,上传者只要有token就能用脚本上传。
上传脚本的效果大概就这样:
image.png
链接结构和初版基本上差不多,只不过200代理没搞明白怎么传递“s.7c7.icu → meta.s.7c7.icu” 这么一条信息,就只好做成302重定向了。



你要说从23年下半年到现在,大作品已经不发了,况且MC社区的大环境也受到了巨大打击,这种小打小闹有啥现实意义不。
——多少有一些吧。
  • 去年十月份左右搞的XDecompiler,用来生成MC反编译代码和资源的GitHub私有仓库,挂在actions上尚能一战,个人感觉相比于Nickid的GitMCDecomp还是略胜一筹的。
  • 十一月份搞了个二十四点游戏的 Spigot 插件,算法是独立研究出来的,当时在学校研究了俩礼拜。
  • link.daozhi.de 和 a.7c7.icu 短链接,已经成为了我生活的一个基础设施了。比如说 MCBBS.rip 的扫雷:https://a.7c7.icu/bbsweeper,或者刷到的 Glish 语言小网站: https://a.7c7.icu/glish,有短链接就可以省的去记网址了。没错我是有记网址的习惯的,不像有些人看个百度热搜还要在Edge搜索框搜“百度”
  • 中间花几个晚上断断续续完成的 qr.7c7.icu,已经被我用来进行小容量(几十KiB)电子数据的线下邮递了话说刻张CD-ROM不更香吗 讲真这玩意确实避免了我四处找二维码生成网站的麻烦,懒得找就自己做一个
  • 再就是今天的 s.7c7.icu 了,算是补全了分享中等容量私密文件的一道坎。


s.7c7.icu 是可以复制的。参考 s7c7icu/static(静态网页部分 | 下载)、s7c7icu/main-stub(Redirector)和 s7c7icu/uploadClient(Python 客户端 | 上传),你也可以搞一个。话说我为什么懒到不写README

甚至静态网页你可以直接用我的基础设施,只要你设置好同源策略就行(把 Meta 和 Data 部分的 CORS 设成 * 或 static.s.7c7.icu)。

——甚至前端网页都可以另起炉灶,因为 download.js 才是下载的基础设施。
你甚至可以拿这玩意做加密博客——这也是我想过的。罢,罢,没时间研究了,摆烂烂(构想中的是 Markdown 原文被加密,URL 带 hash 访问可以解密,然后渲染成 HTML。能研究出来者重赏

image.png
害怕
苦力怕论坛,感谢有您~
 发表于 2024-6-1 22:49:38|显示全部楼层 IP:安徽省
小白表示一点看不懂,我只想说一句,大佬NB!
2#2024-6-1 22:49:38回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 楼主|  发表于 2024-6-1 23:01:19|显示全部楼层 IP:北京
本帖最后由 teddyxlandlee 于 2024-6-1 23:13 编辑

关于许可协议(License)的问题,刚才想了一下。
上面提到的跟 s.7c7.icu 相关的代码,暂以 CC BY-SA 4.0 协议分享。(其实CC协议都是没有后悔药的awa

后面想起来了我再去把 License 和 Readme 文件补全。
有些代码是用 ChatGLM 跑出来的,所以有亿些比较详(fán)细(suǒ)的中文注释。跟我的代码习惯确实不太一样哈哈



多说一句:上面提到的PoemLover模组(今年愚人节做的),还是一如既往的 一个 JAR 支持多版本(1.18+)及多平台(Fa/Fo/Neo/Quilt),工作原理也是一如既往的ASM 黑科技正经人谁引入 MC本体 做依赖啊

image.png
3#2024-6-1 23:01:19回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 发表于 2024-6-2 23:07:09 来自手机|显示全部楼层 IP:河南省
4#2024-6-2 23:07:09回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 楼主|  发表于 2024-6-3 23:45:55 来自手机|显示全部楼层 IP:北京
四分之一的紫晶 发表于 2024-6-2 23:07
二维码内容:
https://s.7c7.icu/suF0zN#6PE_sTmAPLv7yXG3CW778Rp2N-te6QtOFKp06aAML9Ijp9LCFVPahcFB-oRMhS ...

可以下载下来看看
有没有种可能是可以直接点击的呢
5#2024-6-3 23:45:55回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 发表于 2024-6-4 03:54:25 来自手机|显示全部楼层 IP:江苏省
很好!虽然我大概率不会用
6#2024-6-4 03:54:25回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 楼主|  发表于 2024-6-4 13:50:55 来自手机|显示全部楼层 IP:北京
冰川橘子 发表于 2024-6-4 03:54
很好!虽然我大概率不会用


上传只需要一行命令(使用Python脚本),下载只需要一个网址。只不过前者需要一个GitHub账号(得有仓库权限)和GitHub Token。

如果说自建站同理,但是需要额外配置一大堆像DNS绑定、CORS策略设置之类的一大堆问题,这些恐怕不是你能handle的了了
7#2024-6-4 13:50:55回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 楼主|  发表于 2024-6-9 21:35:25 来自手机|显示全部楼层 IP:北京
喜报:上周把200代理搞定了,方法是fork出了一个download.html
8#2024-6-9 21:35:25回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

粤公网安备 44200002445329号 | 由 木韩网络 提供支持 | GMT+8, 2024-12-12 17:38

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4 粤ICP备2023071842号-3