核心就是我们只要记住一个密码,然后不同站点或应用的密码都通过相同的算法计算出来,大致步骤如下:
1.根据我们需要生成的密码的应用,确定应用名、密码包含的字符表 alphabet 、密码长度
2.把我们自己能记住的统一密码,拼上对于的应用名之后进行 hash
3.将 hash 值转成二进阶字符串后,按需要生成的密码长度进行分组
4.分组后得到的字符串转成数字,模 alphabet 的长度得到余数,以该余数为 index 去 alphabet 中取相应的字符
5.上一步得到的所有字符拼接后即生成该应用的密码
按这个思路的话,我们可以自己定义三到五个密码强度规则,分别对应不同的 alphabet 和长度,不同应用按自己所需的密码强度选择不同的规则。
现在浏览器和各端的操作系统基本都有密码云同步,基本只要新设置密码的时候生成一次就好。后面偶尔需要找已生成密码的时候,也只要记得自己的统一密码和几个密码规则就好,不需要保存全量的密码数据。
不知道类似思路的东西有没有人做过,我之后打算尝试用这种方式管理自己的密码。
上午花了点时间用 ts 写了个简单的实现,具体可以看代码:https://github.com/takashiki/pacious
1
Kagari 2020-04-05 15:52:14 +08:00 2
恭喜你又写了个花密的竞品
我觉得可以简化一下然后用脑算,别 hash 了 |
2
infun 2020-04-05 15:53:16 +08:00
密码找回最简单
|
3
lostberryzz 2020-04-05 16:07:37 +08:00
为什么不每一个网站都用随机密码?然后用密码管理软件记
|
4
geelaw 2020-04-05 16:14:11 +08:00 2
使用 hash 函数 ❌
使用伪随机函数 ✔ 这样会得到一个具有适应性密码泄露安全性的方案:使坏者可以请求任意 app 的密码,最终它需要猜出一个未曾见过密码的 app 的密码,希望它猜不出来。 一种方式是把 hash 函数建模为随机预言,这样 hash 函数可以充当伪随机函数,但是这显然不如伪随机函数好,后者是标准模型下可证明安全。 在实践中,大家相信 AES 是伪随机函数(而且 AES 比 SHA256 快,而且 SHA256 已经不能被建模为随机预言了),所以正确的做法应该是通过 KDF 把密码变成 AES key,然后把 app 名字编码为 AES 输入,把 AES 输出映射为 app 密码。 |
5
wangxiaoaer 2020-04-05 16:14:40 +08:00 via Android
我的 v2 密码是 v2denglubiubiubiu 其它登录同理 哪有那么复杂。
|
6
h503mc 2020-04-05 16:16:41 +08:00 via iPhone
@wangxiaoaer 给密码?
|
7
loading 2020-04-05 16:17:27 +08:00
密码管理器不香么?
|
8
secondwtq 2020-04-05 16:36:37 +08:00
根据回复来看,相比于”密码的生成和管理方式“,楼主搞一搞”密码的生成和管理方式的管理方式“可能更好
|
9
maninfog 2020-04-05 16:39:07 +08:00 via iPhone
@wangxiaoaer 你骗人
|
10
GordonL 2020-04-05 16:39:48 +08:00
@wangxiaoaer 骗子,人与人之间的信任呢?😠
|
11
kaiki 2020-04-05 16:40:26 +08:00
写在纸上贴显示器上是不是更方便?
|
13
freakxx 2020-04-05 18:55:38 +08:00
其实没必要那么麻烦
可以自己用一种规则 域名的特殊简称 + 熟悉的字符串 + [len(域名)| 数字的数字] + 符号 比如 V2EX 的密码可以是 v2ex imyourfather123 1(如果没带数字那就是 0) !(数字对应的符号) |
14
wolfan 2020-04-05 19:14:06 +08:00 1
我将密码分作三类。
- 关键工具:如微信、支付宝等,可以通过短信验证码方式登录的。这一类随机一个 24 位全字节密码,就是那种自己也不记得的,反正可以重置。 - 重要工具:如微博、QQ 、各视频、音乐和邮箱等,主要是常用且偶尔需要登录的工具,且其中有付费项目。这一类用一个强密码,能记得下的。 - 无关紧要的:这样的用了个超简单的,反正丢了就丢了这样的。 我对密码的态度就是:反正再强的密码也抵挡不了被撞开的风险,再简单的密码也能挡下千军万马,最终还是逃不掉后台的泄露。 |
15
imn1 2020-04-05 19:15:17 +08:00
算法不重要啦,弄个乱序码表,查询就行
怎样做到方便又不会被中途截获更重要,最难是剪贴板权限…… |
17
ClarkAbe 2020-04-05 22:46:15 +08:00 via iPhone
@lostberryzz 不小心刷机了,然后还没备份而且为了安全采用的是本地服务,凉凉
|
18
lostberryzz 2020-04-05 22:51:12 +08:00
@ClarkAbe 要是电脑被偷了怎么办?硬盘坏了怎么办?这些问题没有考虑过吧
|
19
lostberryzz 2020-04-05 22:52:41 +08:00
@ClarkAbe keepass 和 bitwarden 都可以自建,本地也有缓存,也可以自己定时导出备份,基本可以满足需求
|
20
QUIOA 2020-04-05 23:01:45 +08:00 via Android
|