目录

怎么设计及保存密码

个人密码的设计思路与几种存储方案

保存密码的目的只有一个:保证账号安全。下面我们分阶段来分析。

  • 首先要注意,不能给所有账号设置相同的密码,否则一旦某家网站泄露,就会面临撞库攻击的风险,因此需要给不同账号设置不同的密码。我之前就被盗过几次号,原因就是我的密码几乎都是统一的,除非有些网站强制要求包含大写字母和符号。可随之而来的问题是:密码太多,难以记忆。
  • 这时可以准备一个笔记本,把自己不同账户的密码都记下来。用笔记本记录密码也有两个问题:其一,笔记本丢失或忘带;其二,笔记本被他人偷看。
  • 为了解决上述问题,可以做好备份——随身携带一本,家里放置一本,这样可以解决遗失问题。但如何解决忘带问题呢?出门不小心忘带笔记本了,这时要在室外输入一个密码怎么办?最好的解决办法是网络备份。
  • 网络备份的方案有很多,比如可以用网盘、网络笔记软件,或者 GitHub 来存储密码文件。
  • 这时又会面临新的问题:存储在网络上的文件如何保证安全?即不被人发现,或者即便被人发现,也无法窥探到真实的密码内容。

所以这里最关键的问题,就是如何解决密码在网络上的存储问题。

当然,我们可以选择第三方商业化或开源的密码管理软件,但它们都存在一些问题:

  • 商业化软件最大的问题是不放心,比如密码可能被泄露,或者不知道该商业公司什么时候运营不下去、直接跑路。
  • 而开源软件往往需要自己搭建服务器,这又是非常麻烦的事情。

下面我提供几个解决方案。

比如可以选择 Vim 的 -x 选项对文本进行加密,只需一个主密码即可管理所有密码:

vim -x passwords.txt

提示:vim -x 默认的加密算法(cryptmethod)在不同版本中并不一致,老版本可能是较弱的 zip。建议在 ~/.vimrc 中加上 set cryptmethod=blowfish2,或在打开后执行 :setlocal cm=blowfish2 再保存,以使用更强的 Blowfish2 加密。对极高敏感度的数据,更推荐使用 gpgage 等 dedicated 工具。

加密后的文本文件可以存储在 GitHub 私有仓库或云盘中。

即文本存储用明文,但要带上只有自己知道的暗号。将文本存储在自己的 GitHub 私有仓库或私有笔记中。

由于使用了暗号,所以即使被泄露,别人也不知道你真实的密码是多少。

下面列举一些暗号方法:

  • 单词 + 数字 + 符号转换:把密码设置为一个单词 + 一个数字 + 符号的形式,但我们要先做一层转换。比如:

    • 在明文中记录为 papanameπ24amazing,实际密码为 weiguo4159!(假设父亲叫卫国,π 从小数点后第二位开始数四位即 4159,amazing 表示惊叹对应 !)。
    • motherbirthe14what 就是 May5th7182?(假设母亲的生日是五月五日,自然常数 e 从小数点后数四位即 7182,what 表示疑问对应 ?)。
    • motherbirthe15star 就是 May5th71828*(假设母亲的生日是五月五日,自然常数 e 从小数点后数五位即 71828,star 表示 *)。
  • ASCII 码映射法:将 ASCII 码 与数字对应起来,可用于纯数字密码。比如:AAA 表示 656565(大写字母 A 的 ASCII 十进制值为 65)。

  • 键盘协同记忆法:比如明文是 ZZ,实际密码是 qweszxc7895123,就是键盘最左边的九宫格和数字小键盘的九宫格,按照 Z 的笔顺依次输入的结果。

相关内容