核心就是我们只要记住一个密码,然后不同站点或应用的密码都通过相同的算法计算出来,大致步骤如下:
1.根据我们需要生成的密码的应用,确定应用名、密码包含的字符表 alphabet 、密码长度
2.把我们自己能记住的统一密码,拼上对于的应用名之后进行 hash
3.将 hash 值转成二进阶字符串后,按需要生成的密码长度进行分组
4.分组后得到的字符串转成数字,模 alphabet 的长度得到余数,以该余数为 index 去 alphabet 中取相应的字符
5.上一步得到的所有字符拼接后即生成该应用的密码
按这个思路的话,我们可以自己定义三到五个密码强度规则,分别对应不同的 alphabet 和长度,不同应用按自己所需的密码强度选择不同的规则。
现在浏览器和各端的操作系统基本都有密码云同步,基本只要新设置密码的时候生成一次就好。后面偶尔需要找已生成密码的时候,也只要记得自己的统一密码和几个密码规则就好,不需要保存全量的密码数据。
不知道类似思路的东西有没有人做过,我之后打算尝试用这种方式管理自己的密码。
上午花了点时间用 ts 写了个简单的实现,具体可以看代码:https://github.com/takashiki/pacious
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.