Timmoc 的技术小屋

Timmoc 的技术小屋

这里记录技术笔记与日常思考,欢迎常来逛逛 👋

【AIGC】没人砌的那堵墙,砌好了:点击即用的 shamir 文件分片上线

【AIGC】没人砌的那堵墙,砌好了:点击即用的 shamir 文件分片上线 上一篇《找遍了全网的 shamir 方案,没有我要的"点击即用"的版本》的结尾是这么写的: 砖头齐了,墙没人砌。……如果你也想要一个"点击即用"的 shamir 文件小工具,欢迎留言,一起把它砌起来。 留言就不用了,墙我直接砌完了。 地址:https://tdstud1o.github.io/tool/shamir/,开源在 tdstud1o/tool。任意文件进,n 个分片 + 1 个密文出;凑齐任意 k 个分片,文件原样回来。纯前端、零后端、整页单文件。 一、先说"点击即用"到底长什么样 拆分侧,三步: ...

【AIGC】桌面上那个「备份的config」:九个我每台 Windows 都要打的补丁

我的桌面上有个文件夹,叫「备份的config」。里面躺着一个 18KB 的 ALLconfig.cfg、一个快捷方式,和九个小文件。前面两个是个人环境,后面的九个是每台 Windows 机器我都必做的调整——从 2023 年 12 月攒到 2025 年 3 月,每个文件都小到只有几行,但重装系统时一个个重新去搜,太费劲了。 所以这次直接做了两件事:建了个仓库把它们放出来,再写这篇讲讲每一项的原理和恢复方法。 文件 干什么 恢复 win11右键关闭.txt Win11 右键菜单改回 Win10 经典版 文件内第二条命令 家庭版远程桌面/ 家庭版硬开 RDP 远程桌面 停用 RDP Wrapper WebClient支持http访问.txt WebDAV 客户端允许 http BasicAuthLevel 改回 1 取消webdav文件大小上限.reg 单文件上限 50MB → 4GB 值改回 02faf080 关闭内存压缩.ps1 关闭系统内存压缩 Enable-MMAgent -mc 关闭图库功能.reg 藏掉侧边栏「图库」 删除该 CLSID 项 禁止DoSvc偷网.bat 禁用传递优化 文件内生效行即恢复 开启ip转发.reg 本机当路由转发 IP 包 值改回 0 清理图标缓存.bat 修复图标错乱 无需恢复 Win11 右键菜单,改回 Win10 Win11 的右键菜单把「显示更多选项」收了一层,天天用的人等于天天多点一下。网上大部分教程让你装插件,其实一行注册表就够: ...

qoder送的无限token的千问3.8flash,好用吗?

是什么让一个人类没有用AIGC发博客? 当然是因为,qoder送的那简直不是人类能用的,请看: 不过其实workbuddy也半斤八两(这里指的是某个免费模型): 但是更难绷的是: 这里我让他执行的任务是 /posts/2026-10-15-ai-loop-2000-times/ 编不出来了 AI哪来那么多话,我吐槽完就没啥想说的了,哦我要说: 还是workbuddy送的鸡蛋多,workbuddy就像是快车道但是限额,qoder是限额还慢车道 但你要说哪个产品做得最能提高用户日活,那肯定是qoder,毕竟只要你任务完不成,那肯定得后台挂着它吧。 但这种慢得要死的速度是真恶心人啊—— 刚刚qoder做完回来了,让我看看怎么回事? ...

2026-10-17 #AI #... 1 min

【AIGC】找遍了全网的 shamir 方案,没有我要的"点击即用"的版本

【AIGC】找遍了全网的 shamir 方案,没有我要的"点击即用"的版本 事情的起因很简单:我想要一个这样的工具——上传任意文件,点一下,得到 n 个分片 + 1 个密文;恢复的时候,凑齐任意 k 个分片,点一下,文件原样回来。全程纯本地计算,不依赖任何后端,部署在一个静态页面就能跑。 我以为网上肯定有一堆现成的。结果把全网翻了个底朝天,发现这个生态位居然是空的。 一、先说我到底要什么 列一下我找了一路的验收标准,也是这个"生态位"的定义: 任意文件——不是助记词,不是口令字符串,就是随便一个文件:照片、文档、游戏存档、压缩包。 混合加密:随机生成一个 key,用 AES-256-GCM 加密文件得到密文;Shamir 秘密共享只用来分片这个 key,而不是分片文件本身。 返回物:n 个分片(每个只有几十字节)+ 1 个密文(和原文件一样大)。 纯前端:加密、分片、重组全部在浏览器本地完成,密文和分片全部本地下载。 能部署在 GitHub Pages:零后端、零服务器、零存储,打开页面就能用。 最好有现成的开源仓库,拿来即用。 为什么是"分片 key 而不是分片文件"?因为 Shamir 分片的总体积是 n × 秘密大小——把整个文件分片,每人要保管一大块跟原文件差不多大的东西,这不叫备份,这叫搬家。先加密、再只分片那 32 字节的 key,每人拿到的就是几行字符,复制、打印、二维码都能装;而密文可以随便丢——R2、U 盘、公共网盘,没有 key 它就是一堆噪声。 ...

【AIGC】哨兵、整曲睡眠和手抄的分隔串:三个 2016–2018 易语言小工具里试出来的 API 用法

同一时期(2016-03-28 → 2018-08-08)的又一批小文件,来自另一台机器,三个互不相干:一个按后缀列文件(5,241 字节),一个线程化播放 mp3(7,730 字节),一个是取 QQ 头像和昵称的易语言模块(3,274 字节)。共同点不在题材,在读出来的东西:这些 API 当年都没有文档给他看,用法全是试出来的。试对的方法和试错的方法都原样躺在源码里——这种东西比"做成了什么"值钱。 三份都用 e-packager 解成了文本源码,控制流(.如果 / .计次循环首 / .循环判断尾)是原样回来的,所以下面讲"怎么做的"。先立一个交代:解出来的文本带工具痕迹,比如字符串里的 #e2txt_text#\,在 IDE 里看就是 \;本文引用源码时按这个方式还原了 #e2txt_text#\,其余保持抽取原样,有出入以 IDE 打开 .e 为准。 ...

【AIGC】把反弹做成减法、把手柄当身份、把事件当时钟:2016 年春天六天三个易语言动画框玩具里的四套可迁移手法

这批要讲三个文件:扑克牌选中.e(7,019 字节,2016-03-28)、我的第一个动画作品哈哈.e(9,300 字节,2016-03-30)、我的第二个动画作品.e(52,225 字节,2016-04-02)。三个工程挤在六天里,是同一趟学「动画框」控件的产物。为什么那几天连做三个,源码里没有任何证据,我不猜;文件名里那个「哈哈」是他自己写的,保留。 三个工程共用的地基只有一样:易语言扩展支持库 iext2 提供的动画框控件。把它们三个的源码合起来数一遍,用到的动词一共十来个:创建物体、销毁物体、销毁所有物体、置图片、置角度、前进、自动前进、停止自动前进、置类型、置层次、置物体位置、取物体顶边;能听到的回调也只有这几个:碰撞到边界、碰撞到物体、按下某键、物体左键被按下、物体右键被按下、自动前进停止(物体将销毁 在扑克牌那个文件里声明了一个空壳,一行代码都没写)。没有定时器,没有网络,没有文件写入;扑克牌的 52 张 bmp 是运行时从程序外部的文件夹读的,不在 .e 里面。控件没有场景图、没有组件系统、没有"实体"概念——它给你的全部家当就是一个整数标识值、一个角度、一串航点。下面四套手法,全是在这点家当上手搓出来的。 文本源码用 e-packager(MIT 协议)从 .e 容器抽出来,仓库在 text/ 目录下一并给了。先交代两句工具痕迹,读的时候别当原文:抽取文本里的 #e2txt_text#\ 是工具给路径串的转义残留,还原成 \ 来读;匿名局部变量_620822576 是工具给 IDE 里一个没起名字的临时变量临时编的名,同文件里还有 .局部变量 变量 这种只有名字没有类型、以及一整行空白的 .程序集变量——那些才是 IDE 里的原始糙样,工具只是原样还原。一切以易语言 IDE 打开 .e 为准。 ...

【AIGC】自己定一个 TCP 帧协议:魔数、长度前缀、粘包,和一个把我救回来的全局开关

起因 2023 年写过一个 C/S 的东西:服务端 Java(Spring Boot 里嵌 Apache MINA),客户端是 C++ 写的 DLL。两边要长期连着、服务端能主动推东西下去。 HTTP 做不到这件事——至少 2023 年的我不会:服务端主动下发就得 WebSocket 或 SSE,而我要的是"一条连接上双向随便发"。所以干脆自己定协议。 ...

【AIGC】小可爱:一个 QQ 机器人,我写了四代,只有一代没死在最后一公里

一个写了六年的机器人 这个项目叫「小可爱」,英文名 SmartCute / smartcute(代码里的目录、变量、注释都用的这个拼法)。它是 QQ 机器人:能被 @,能接话,能查台词,能跨群群发,能挂"智慧果"。 最早的物证是 2019 年 7 月 25 日夜里最后修改的 app.e,最后一份日志停在 2025 年 7 月 5 日。中间六年,我把它写了四代: ...

【AIGC】ret2libc 折磨了我三天:32 位压栈就完事,64 位卡在一条 pop rdi 和一次栈对齐

一句话 2023-03-01,我在练习目录里留了一行字: 完成!我觉得我不会再忘记这个怎么写了。 三年半后把东西翻出来归档,这句话半真半假。流程确实忘不掉,但当时卡住我的地方,和我以为的完全不是一回事。 两个样本、两份脚本,现在一起放在 ret2libc。 一、为什么这两个目标都必须借 libc 两道题一个 32 位一个 64 位,共同点很明确:程序里既没有 system,也没有 /bin/sh 这个字符串。 那就没得商量了——想拿 shell,只能借 libc 里现成的那两个东西。这就是 ret2libc 的全部动机:漏洞给你控制流,libc 给你「要执行的代码」。 ...

【AIGC】用 Rust 写了个 3 FPS 的终端井字棋,AI 最后靠八个特殊局面兜住了

起因:五个目录,两个是自己写的 D:\1\MySelf\2025\IdeaProjects 一共 489 MB,五个目录,没有一个是 git 仓库——全是从 GitHub 拖下来的 zip 或纯源码快照。 目录 性质 体积 rustDemo 自己写:Rust 终端井字棋 147 M(全是 target/) untitled 自己写:Java 草稿 33 K KMP-App-Template-main 上游模板 83 M compose-multiplatform-master 上游仓库快照 247 M localsend-main 上游 Flutter 应用 13 M 清掉 target/、.gradle/、.idea/、out/ 之后 489 MB → 341 MB,其中能压的全是 rustDemo/target(147 M,三套 profile:debug、release、x86_64-pc-windows-gnu)。 ...