核心就是我们只要记住一个密码,然后不同站点或应用的密码都通过相同的算法计算出来,大致步骤如下:
1.根据我们需要生成的密码的应用,确定应用名、密码包含的字符表 alphabet 、密码长度
2.把我们自己能记住的统一密码,拼上对于的应用名之后进行 hash
3.将 hash 值转成二进阶字符串后,按需要生成的密码长度进行分组
4.分组后得到的字符串转成数字,模 alphabet 的长度得到余数,以该余数为 index 去 alphabet 中取相应的字符
5.上一步得到的所有字符拼接后即生成该应用的密码
按这个思路的话,我们可以自己定义三到五个密码强度规则,分别对应不同的 alphabet 和长度,不同应用按自己所需的密码强度选择不同的规则。
现在浏览器和各端的操作系统基本都有密码云同步,基本只要新设置密码的时候生成一次就好。后面偶尔需要找已生成密码的时候,也只要记得自己的统一密码和几个密码规则就好,不需要保存全量的密码数据。
不知道类似思路的东西有没有人做过,我之后打算尝试用这种方式管理自己的密码。
上午花了点时间用 ts 写了个简单的实现,具体可以看代码:https://github.com/takashiki/pacious