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

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

但是想找一个简单好用的密码本却不是什么容易的事,常见的要么是在线服务,需要收费,还时不时传出个密码大规模泄露的问题,就算服务一直稳如老狗,密码一直存在别人机器里总有点不舒服。至于免费的软件,需要费很多功夫搭工具链,搞密码文件多地同步。还得安装软件,还说不定只有桌面端没有手机端,还有 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 全栈的同学也可以去瞅瞅,大家相互交流。

相关推荐
一只大侠的侠15 分钟前
React Native开源鸿蒙跨平台训练营 Day16自定义 useForm 高性能验证
flutter·开源·harmonyos
IvorySQL1 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
一只大侠的侠2 小时前
Flutter开源鸿蒙跨平台训练营 Day11从零开发商品详情页面
flutter·开源·harmonyos
一只大侠的侠2 小时前
React Native开源鸿蒙跨平台训练营 Day18自定义useForm表单管理实战实现
flutter·开源·harmonyos
一只大侠的侠2 小时前
React Native开源鸿蒙跨平台训练营 Day20自定义 useValidator 实现高性能表单验证
flutter·开源·harmonyos
晚霞的不甘2 小时前
Flutter for OpenHarmony 可视化教学:A* 寻路算法的交互式演示
人工智能·算法·flutter·架构·开源·音视频
天下代码客3 小时前
使用electronc框架调用dll动态链接库流程和避坑
前端·javascript·vue.js·electron·node.js
weixin199701080163 小时前
【性能提升300%】仿1688首页的Webpack优化全记录
前端·webpack·node.js
晚霞的不甘4 小时前
Flutter for OpenHarmony 实现计算几何:Graham Scan 凸包算法的可视化演示
人工智能·算法·flutter·架构·开源·音视频
猫头虎4 小时前
OpenClaw-VSCode:在 VS Code 里玩转 OpenClaw,远程管理+SSH 双剑合璧
ide·vscode·开源·ssh·github·aigc·ai编程