实战笔记:为了管好那堆记不住的密码,我给自己写了个全加密密码本

虽然现在的 App 普遍支持手机号或微信一键登录,但对于开发者来说,GitHub、服务器、各类海外服务的登录依然离不开“邮箱+密码”的传统模式。 我曾经历过一段漫长的“密码管理进化史”: Excel 时代:最早用一个加密的 Excel 表格记录,在电脑端还凑合。 Flutter App 时代:为了手机查看方便,我曾写过一个简单的 Flutter App,支持指纹查看,但功能简陋,连“修改”功能都没有。 直到有一次,GitHub 要求我重新登录,由于我频繁重置密码且新旧密码不能重复,导致我彻底记混了。在另一台电脑前尝试了无数次失败后,我意识到:我需要一个足够安全、随时可用、功能完整的个人密码管理工具。 于是,“豆子工具”里的小程序版密码本诞生了。 1. 设计核心:绝对的隐私与自由 在设计之初,我就定下了两个原则:不联网、重加密。 纯离线运行:为了打消用户(包括我自己)对隐私的顾虑,我砍掉了所有联网备份功能。所有的密码数据仅存储在手机本地,备份只能通过聊天文件导出。 三重加密体系:这是我花费心血最多的地方。主密码(Master Password)不存储在设备上。 第一步:用主密码解密 RSA 私钥。 第二步:用私钥解密 AES 密钥。 第三步:用 AES 密钥解密具体的 JSON 序列化记录。 这种混合加密机制确保了即使手机丢失,只要主密码不泄露,数据依然是安全的。 2. 攻克开发中的“大山” 这个功能的开发过程远比我想象中痛苦。尤其是在小程序环境下处理文件缓存、二进制流转换和加解密逻辑,经常一个 Bug 就要调试好几天。 中途我好几次想过放弃,觉得用 Excel 也可以凑合。但每次想到反复重置密码的痛苦,还是咬牙坚持了下来。为了稳定性,我将原本不稳定的二进制存储改为了 UTF-8 编码的 JSON 序列化,最终实现了丝滑的操作体验。 3. 功能完善:不仅仅是“存一下” 相比之前的 Flutter 版本,这次我补全了所有短板: 增删改查:支持搜索功能,输入标题就能快速定位账号。 备份恢复:加入了完整的备份机制,更换手机时可以轻松迁移数据。 批量操作:支持导入和导出,方便从其他平台平替过来。 密码提示:为了防范“忘记主密码”这个终极灾难,我加入了密码提示功能(建议设一个只有自己懂的暗语)。 4. 字段灵活,满足多样需求 每一条记录都包含了:标题、URL、用户名、密码、备注。 无论是一个服务器的 SSH 密码,还是一个冷门网站的登录信息,都能井井有条地分类存放。 总结 这个密码本工具是我最用心、也觉得最实用的作品之一。它没有花哨的云同步,却给了我最踏实的安全感。 最后再次提醒: 由于是全离线存储,请务必定期通过“导出备份”功能保存你的数据,并牢记你的主密码。

2018-01-11 · 1 min · Eagle

实战笔记:知识真的就是金钱,聊聊我的局域网调试工具

在“豆子工具”的所有功能中,局域网调试工具(TCP/UDP/WebSocket) 并不是受众最广的,但它却是我最引以为傲的一个。 因为它让我真切地体会到了一句话:知识就是力量,知识就是金钱。 缘起:把调试器揣进口袋 做嵌入式开发或者网络协议调试的人都知道,以往测试局域网通信,必须背着电脑,接上串口线或网线,蹲在机柜旁守着。我当时就在想:既然微信小程序已经开放了网络通信的能力,为什么我不能做一个随身携带的调试器呢? 于是,我深度调用了小程序的 wx.createTCPSocket、wx.createUDPSocket 和 WebSocket API,在“豆子工具”里构建了一个完整的网络测试模块。它支持: 十六进制(Hex)与 ASCII 码切换 实时数据日志展示 局域网内稳定的数据收发 变现:从技术分享到“第一桶金” 工具做成后,我并没有藏着掖着,而是把实现原理和核心逻辑整理成文,发布到了微信开发者社区。 没过多久,一位用户通过那篇文章联系到了我。他在工业自动化领域遇到了一个难题:需要一套能够定制化采集设备数据的微信小程序工具,而协议正是基于 Modbus/TCP。 由于我的“豆子工具”已经打好了坚实的底层基础,我对原有的 TCP 调试模块进行了针对性的修改,迅速就适配出了满足他实际业务场景的采集方案。 虽然这笔订单带来的“第一桶金”数额并不算惊人,但它对我的意义非凡。它验证了一个逻辑:当你把一个细分领域的工具做到极致,并愿意分享出去时,价值自然会找上门来。 思考:底层逻辑的价值 很多开发者纠结于学习各种眼花缭乱的新框架,但其实最耐打的永远是底层逻辑。 通过开发这个调试工具,我深度钻研了 TCP 的三次握手、UDP 的无连接特性以及 Modbus 这种工业标准协议。正因为有了这些底层的积淀,当机会来临时,我才能在短短几天内就把“调试工具”变成“生产力工具”。 总结 现在,这个局域网调试模块依然是“豆子工具”里的核心功能。每当我在现场用手机直接调通一台设备时,我都会想起那个联系我的用户。 知识不仅能改变认知,真的能产生价值。

2018-01-06 · 1 min · Eagle