如何构建自己的密码

原理很重要,技巧是浮云,抛砖引玉,且看且思考。

一、为不同的账户类型制定不同的密码策略

1. 账户类型

首先我们可以很容易把账户分为两类:重要账户与一般账户。
分类是为了制定密码策略,因为这两类账户的密码需求是不一样的
这个分类不绝对,可以自行斟酌,比如微博微信都可以放在重要类别。

  • 重要账户是指涉及个人重要隐私或者财产的:
    银行、社保、支付宝、QQ、手机pin码…

  • 一般账户指各种论坛、社交媒体、产品使用授权等:
    微博、微信、天涯、知乎、星巴克、路由器、WIFI、宽带…

2. 密码策略的基本原则

  • 不同账户采用不同密码
    若密码相同,一个账户密码泄露了就要改所有账户的密码,显然是下下策。
    目前个人密码最容易被泄露的一种情况是——撞库。简而言之,就是你注册了网站A,又注册了网站B,C… 结果 C 网站不幸有漏洞,被黑客收集了用户和密码信息,然后黑客就用这个去尝试登陆网站A,B,尝试批量登陆其他网站后,得到一系列可以登录的用户了。这类情况其实非常常见,必须谨慎对待

  • 越高的密码复杂度越安全
    密码的复杂度并不是指密码看起来越长越无序越安全,而是指采用数字+字母+符号的组合形式,不要小看一个符号,这种混搭的形式将极大的提高破暴力解难度。暴力破解又叫做穷举法,是指一个个试密码,逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试9999次就能找到正确的密码。若加入符号,可以极大提高密码组合的可能,因此能有效防范暴力破解。通常来说,真正通过暴力破解来攻破个人密码的情况不多,但不管怎样,提高复杂度总是好的

  • 尽可能方便记忆
    掐指一算自己注册的论坛就有十几个,可如果不同账户采用不同密码,怎么可能记得住这么多密码呢?别急,先仔细想想自己是不是真的需要记忆那么多密码。根据我们的账户类型,我们可以采用不同的密码储存方式,忘记密码这种事自然是不能忍的。

3. 重要账户的密码策略

这类账户的密码一般只允许使用数字,例如银行,支付宝,通常这类账户不担心被暴力破解,他们有防范机制,输错几次密码后便不能输入了。因此,密码复杂度不是第一位的。重要密码需要满足:

  • 便于记忆
    心里熟记,同时写个小本放家里存着,以备不时之需

  • 没有明显规律
    绝对不要用生日,111111,123456,000000 这类大众密码。
    越无序越不容易被人猜到。当然还有绝对不要跟一般账户的密码相同,谨记不同账户采用不同密码的基本原则。

4. 一般账户的密码策略

这类账户其实我们经常会用到,但记忆其实不是第一位的,我们完全可以做一份密码表,需要的时候用下即可。一般这类账户的密码做到相对独立和高复杂度即可。关于密码表的安全性后面有详述。

  • 相互独立
    前面已经提到,为防范撞库,这类账户密码要做到相互独立。

  • 复杂度高
    网络账户容易被暴力破解,因此要复杂度越高越好

二、根据自己的策略进行密码构建与储存

绝佳的密码无外乎就是好记又不容易被人猜到,那如何做到呢?下面我就分享一些密码构建的技巧。

1. 如何提升复杂度与无序性

数字,字母,符号兼备。
对个别字母变形即可提高复杂度,很好记
比如我的名字 leeway 可以变形为 1EE^^@y
下表是可以参考的变形,当然自己可己设定自己的变形表。

原字符 变形
a @
e 3
d b
o 0
s $
t 7
x ><
v ^
z 2

通过这种字母与数字符号的互换,一串便于记忆的句子就能变成看似乱码的密码了:

password –> P@$$w0rd

这是种简便易行的方法。

2. 如何使密码相互独立

很多时候要使用某个app就要注册个账户,这个时候要临时想一个密码显然比较困难,如果单纯得采用 自己的常用密码+应用名称记号的组合形式是比较容易被人识破的,而且这些账户通常不重要,这种时候可以采用 UUID 。

UUID 叫做通用唯一识别码,只要理解成一串随机的字符就可以了,一般包含32个16进制数字,UUID 可以通过很多方法生成,比如这个网站 可以一次性生成很多UUID,需要的时候生成一个即可,随机生成的两个 UUID 重复的可能性极低,可以放心使用。那如何记忆这么多“乱码”呢?没事,请接着看。

3. 如何储存密码与记忆

很显然,密码的复杂度和可记忆程度是成反比的。毕竟不是最强大脑,要记忆住这么多相互独立的密码很困难,这时候就要使用一些工具和技巧了,这里重点讲讲密码表。

重要账户密码记小本,一般账户密码存可加密的网络笔记。

重要账户的密码一般复杂度不高,数量也不多,尽可能记心里,家里备个小本藏好。

  • 唐诗密码
    唐诗密码是我在github看到的一个开源项目,其实这类方法就是指用一串好记的句子来联想出相关密码,跟前面提到的变换字符是一样的。这种密码随机性强,看不出特定规律,关键是非常好记。

2AYSTBZ QZ1GWC3
两岸猿声啼不住,轻舟已过万重山

  • 加密的在线笔记
    一般账户我们就存加密笔记,你之需要记住两个密码就可以了,一个是笔记的登陆密码,一个是笔记的加密密码。目前市场上有不少网络笔记工具可以选择,这里不做推荐,大家可以自己找找。云端的笔记有个优点就是储存和输入方便,无论是手机和电脑都可以方便访问。
    这时候你一定在想一个严肃的问题,要是我存密码的笔记被黑了怎么办,如果遇到黑客或者有权限的内部人员,岂不是把我给看光了?不妨学习下古人的技法。

  • 斯巴达密码
    斯巴达密码也就是密码棒,是个可使的传递讯息字母顺序改变的工具,由一条加工过、且有夹带讯息的皮革绕在一个木棒所组成。在古希腊,文书记载着斯巴达人用此于军事上的讯息传递。简而言之就是只有根据规律选取特定位置的字符才是有效的,其他都是用来干扰的无效字符。

密文:KGAWIBRXLQOPLCSDKVRGIASDNGBHG
阅读规律:K GAW I BRX L QOP L CSD K VRG I ASD N GBH G
解密后的:K I L L K I N G

  • 衍生的方法
    看完斯巴达密码是不是有种茅塞顿开的感觉?我在存云端的笔记时就会采用衍生的方法,由于只有自己知道有效的密文,因此就算笔记被人黑了也没关系。每个人可以自己想好自己的有效字符串,比如下面这几个账户,可能最后一串字符是有效,或者只有第三个字符是无效的,除了你自己,没人看得出规律。

知乎 5d37e74b-4f22-403a-a54f-e25b2e8bba91
果壳 fca63075-ecad-4214-8083-9e2bc2c12423
豆瓣 e6fb2d22-9bc0-4861-a72c-f6d8a866013d
简书 dea62500-fcf8-485f-937a-7f926d54a1ef

三、总结

  • 账户分类
  • 账户密码相互独立,忌讳一个密码对应多个账户——有效防止“撞库”
  • 通过替换字符来增加密码复杂度,最好大写、小写、数字、符号兼备
  • 重要账户密码记小本,靠脑袋记忆,可用“唐诗密码”
  • 一般账户存云端笔记,加密笔记再加密——采用“斯巴达密码”
  • 准备好一些随机密码备用,比如采用 UUID

最后写一下为什么我不用三方的密码管理工具,比如 KeePass、LastPass、1Password。原因无非是不方便与不信任,基于本地的密码管理工具不方便,云端跨平台的相当于把自己的密码都交给一家公司的服务器上,这让我更不放心。如果一家公司掌握了许许多多人的账户,难免会被成群的黑客惦记。