想到了一种密码的生成和管理方式

2020-04-05 15:41:15 +08:00
 takashiki

核心就是我们只要记住一个密码,然后不同站点或应用的密码都通过相同的算法计算出来,大致步骤如下:

1.根据我们需要生成的密码的应用,确定应用名、密码包含的字符表 alphabet 、密码长度

2.把我们自己能记住的统一密码,拼上对于的应用名之后进行 hash

3.将 hash 值转成二进阶字符串后,按需要生成的密码长度进行分组

4.分组后得到的字符串转成数字,模 alphabet 的长度得到余数,以该余数为 index 去 alphabet 中取相应的字符

5.上一步得到的所有字符拼接后即生成该应用的密码

按这个思路的话,我们可以自己定义三到五个密码强度规则,分别对应不同的 alphabet 和长度,不同应用按自己所需的密码强度选择不同的规则。

现在浏览器和各端的操作系统基本都有密码云同步,基本只要新设置密码的时候生成一次就好。后面偶尔需要找已生成密码的时候,也只要记得自己的统一密码和几个密码规则就好,不需要保存全量的密码数据。

不知道类似思路的东西有没有人做过,我之后打算尝试用这种方式管理自己的密码。

上午花了点时间用 ts 写了个简单的实现,具体可以看代码:https://github.com/takashiki/pacious

3314 次点击
所在节点    奇思妙想
20 条回复
Kagari
2020-04-05 15:52:14 +08:00
恭喜你又写了个花密的竞品
我觉得可以简化一下然后用脑算,别 hash 了
infun
2020-04-05 15:53:16 +08:00
密码找回最简单
lostberryzz
2020-04-05 16:07:37 +08:00
为什么不每一个网站都用随机密码?然后用密码管理软件记
geelaw
2020-04-05 16:14:11 +08:00
使用 hash 函数 ❌
使用伪随机函数 ✔

这样会得到一个具有适应性密码泄露安全性的方案:使坏者可以请求任意 app 的密码,最终它需要猜出一个未曾见过密码的 app 的密码,希望它猜不出来。

一种方式是把 hash 函数建模为随机预言,这样 hash 函数可以充当伪随机函数,但是这显然不如伪随机函数好,后者是标准模型下可证明安全。

在实践中,大家相信 AES 是伪随机函数(而且 AES 比 SHA256 快,而且 SHA256 已经不能被建模为随机预言了),所以正确的做法应该是通过 KDF 把密码变成 AES key,然后把 app 名字编码为 AES 输入,把 AES 输出映射为 app 密码。
wangxiaoaer
2020-04-05 16:14:40 +08:00
我的 v2 密码是 v2denglubiubiubiu 其它登录同理 哪有那么复杂。
h503mc
2020-04-05 16:16:41 +08:00
@wangxiaoaer 给密码?
loading
2020-04-05 16:17:27 +08:00
密码管理器不香么?
secondwtq
2020-04-05 16:36:37 +08:00
根据回复来看,相比于”密码的生成和管理方式“,楼主搞一搞”密码的生成和管理方式的管理方式“可能更好
maninfog
2020-04-05 16:39:07 +08:00
@wangxiaoaer 你骗人
GordonL
2020-04-05 16:39:48 +08:00
@wangxiaoaer 骗子,人与人之间的信任呢?😠
kaiki
2020-04-05 16:40:26 +08:00
写在纸上贴显示器上是不是更方便?
takashiki
2020-04-05 17:18:50 +08:00
@geelaw #4 学习了
freakxx
2020-04-05 18:55:38 +08:00
其实没必要那么麻烦

可以自己用一种规则

域名的特殊简称 + 熟悉的字符串 + [len(域名)| 数字的数字] + 符号

比如 V2EX 的密码可以是

v2ex imyourfather123 1(如果没带数字那就是 0) !(数字对应的符号)
wolfan
2020-04-05 19:14:06 +08:00
我将密码分作三类。
- 关键工具:如微信、支付宝等,可以通过短信验证码方式登录的。这一类随机一个 24 位全字节密码,就是那种自己也不记得的,反正可以重置。
- 重要工具:如微博、QQ 、各视频、音乐和邮箱等,主要是常用且偶尔需要登录的工具,且其中有付费项目。这一类用一个强密码,能记得下的。
- 无关紧要的:这样的用了个超简单的,反正丢了就丢了这样的。

我对密码的态度就是:反正再强的密码也抵挡不了被撞开的风险,再简单的密码也能挡下千军万马,最终还是逃不掉后台的泄露。
imn1
2020-04-05 19:15:17 +08:00
算法不重要啦,弄个乱序码表,查询就行
怎样做到方便又不会被中途截获更重要,最难是剪贴板权限……
mumbler
2020-04-05 20:19:20 +08:00
@wolfan +1,一模一样的方法,忘记了也就试三次就出来了
ClarkAbe
2020-04-05 22:46:15 +08:00
@lostberryzz 不小心刷机了,然后还没备份而且为了安全采用的是本地服务,凉凉
lostberryzz
2020-04-05 22:51:12 +08:00
@ClarkAbe 要是电脑被偷了怎么办?硬盘坏了怎么办?这些问题没有考虑过吧
lostberryzz
2020-04-05 22:52:41 +08:00
@ClarkAbe keepass 和 bitwarden 都可以自建,本地也有缓存,也可以自己定时导出备份,基本可以满足需求
QUIOA
2020-04-05 23:01:45 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/659621

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX