受够了广告和收费,我写了个一个开源密码本

密码本可以说是一个非常常见的需求了。

但是想找一个简单好用的密码本却不是什么容易的事,常见的要么是在线服务,需要收费,还时不时传出个密码大规模泄露的问题,就算服务一直稳如老狗,密码一直存在别人机器里总有点不舒服。至于免费的软件,需要费很多功夫搭工具链,搞密码文件多地同步。还得安装软件,还说不定只有桌面端没有手机端,还有 UI 方面,高情商的说是"显得不那么现代"。

说实话,我很烦。

我的密码也不是什么值钱玩意,几张卡里加起来也没几十块钱。还有什么公司邮箱,公司 vpn 这种几百年不见一次的密码,我的要求不高,就是想找个地方能存一下,需要的时候能找到,甚至都不强求一定要够安全。只要不是写到别人脸上那种我都可以。

但是事与愿违,我真没找到,那还说什么,自己动手呗。所以这个项目诞生了:

HoPGoldy/cube-password: 一个简单扁平的桌面 / 移动端密码本。 (github.com)

长啥样?

应用对桌面端和移动端都进行了适配,用起来也算是方便:

创建密码时不仅支持生成随机密码,还可以随机生成用户名,我非常喜欢这个功能,特别是注册那种无关紧要的网站时必须要填用户名的时候。

怎么用?

很简单,首先你得有一台装好了 docker 的服务器,然后敲一下命令:

bash 复制代码
docker run -d -p 3701:3700 -v ~/cube-password-storage:/app hopgoldy/cube-password

可以了,之后应用就会运行在 3701 端口上,并把数据保存在 ~/cube-password-storage。啥配置都不用,跑起来内存占用也就四五十M,非常令人舒爽。

如果你想直接放在互联网上用,可以,这东西自带加密让你即使裸跑在 HTTP 上也能保证不被别人扒裤子。但是毕竟是 web 应用,中间人 js 注入之类的问题确实不好防,如果可以的话非常推荐上个 HTTPS,安全感一下子就起来了。

cube-password 本身不支持 https 传输,推荐用前置 nginx 来实现这个需求,模板 nginx 配置文件

之后直接访问即可,首次打开会让你设置一个主密码,千万别忘了!最好写个纸条塞到你钱包里。然后就可以用了,登录后半小时过期,直接关页面也过期。桌面端移动端通用,功能没啥特别的大家摸索一下就会。

安全么?

虽然我对安全的要求并不高,但是既然开源出来的,咱的标准还是要高一点的,这个项目都用到了哪些安全相关的技术呢:

  • sha512、sha256、aes、128 位 nanoid、加盐
  • 挑战码鉴权
  • 全局登录重试限制
  • 防重放攻击检查
  • 异地登陆 / ip 地址检查
  • totp 二步验证
  • 分组加密
  • ...

完整的安全说明可以看 这里

说实话,我的密码学研究的也一般,搜肠刮肚也就能拿出来这些个方案。不过我觉得也是够用了,起码你让我来攻破一下这个应用我还真做不到。别的不说,密码你得记牢一点,忘了之后数据说找不回来那是真找不回来。

当然你要说 ddos 淹一下我也没辙。但是咱往日无怨近日无仇的,nginx 搞个复杂点的路径别人都扫不到这个网站对吧,犯不着担心这个。

用的什么技术栈?

项目采用了 nodejs 全栈,前端 react + antd,后端 koa + sqlit,完全由 ts 开发。后端用函数式实现了一个简单的依赖注入框架。注释也算比较全,想要上手 node 全栈的同学也可以去瞅瞅,大家相互交流。

相关推荐
SL_staff31 分钟前
制造业私有化文档平台的技术实践:从知识孤岛到可追溯知识资产
java·spring·开源
T型码农要学习1 小时前
开源项目12|Miniflux:自建RSS订阅阅读器,摆脱算法信息流,实现纯净阅读自由
开源
星辰徐哥1 小时前
本地视频预览别只自己看:把Remotion动效项目发给客户远程验收
docker·ai·node.js·html·音视频·react·remotion
SL_staff2 小时前
3天上线OKR系统:一名HR与1名工程师如何用JVS完成全栈交付
java·低代码·开源
dong_junshuai2 小时前
每天一个开源项目#99 OpenResearch:2.2K星的本地研究Agent工作台
开源·github·agent
m4Rk_3 小时前
【论文阅读】Agent 记忆机制(69):STITCH——用上下文意图解决“语义相关但情境错误”的记忆检索
论文阅读·人工智能·学习·开源·github
vipjx13 小时前
百度网盘下载慢怎么办?2026实测PanDownload与助手满速方案
开源
风跟我说过她5 小时前
SQL 一键转经典 Chen 风格 ER 图:开源 CLI + 在线工具 + Agent Skill
数据库·python·sql·开源·开源软件
ID34610744205 小时前
【课程设计】基于Spring Boot+Vue的校园共享无人机服务系统设计与实现-计算机毕设 附源码44219
javascript·vue.js·spring boot·python·node.js·php·课程设计
万物智能信息科技6 小时前
电容触摸 FT5406,另一颗芯片、同一条总线—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
人工智能·华为·开源·harmonyos·鸿蒙