1. 引子
今天整理了一下众多邮箱、网站的密码,花费了差不多一个下午的时间,这里把一点经验分享出来。相信大家现在都有很多重要或者不重要的密码要记住,也有过忘记密码然后不得不通过邮箱、短信找回的经历……都用一个密码,网银、支付宝、QQ、邮箱、论坛都用一个密码,那要是QQ密码泄露或者论坛被“脱裤”了你就处于完全不设防的境地了。那么如何才能记住众多密码还保证安全呢?可以从设计密码的角度来达到安全和易记这两个目标。
2. 密码要求
安全:不容易被人猜出,不容易被机器暴力破解,不容易从单个密码推出其他密码[1]
易记:看到不同的账号,能够在短时间内回忆或者推演出准确密码
要实现安全的前两个要求可以采用数字+字母+特殊符号的组合。安全的第三个要求要和易记这个目标结合起来,密码既能根据不同的账号按规律变化,又不能被猜出规律。
3. 实践方法
实践方法:
无规律字符串
为了防止密码被猜到(人猜,或者字典破解),不要使用自己、恋人、亲人的生日,不要用电话号码、QQ号,可以用自己熟悉的一句话生成[2]。例如:
wxhcdpg(我喜欢吃大苹果)
这个字符串看起来毫无规律吧,其实是“我喜欢吃大苹果”的配音首字母,记住这句话之后,一遍默念就打出来了,看起来毫无规律又好记的密码就诞生啦!为了增加暴力破解难度,还可以将其中的某些大写,比如第一个字母:Wxhcdpg,或者后面三个字母:wxhcDPG。还可以加上固定的数字串,比如315,Wxhcdpg315,现在加上数字后就更难破解了。不过这样还是不能根据不同的账号变化,下面就通过组合的方法来达到这个目标。
组合和分级
前面介绍了一种好记又难猜的密码,但是不能所有的账号都用这个密码啊,这里就可以利用组合来实现根据不同的网站在大脑中生成不同的密码,还是以上面的密码做为简书的密码为例,可以将密码分为前面的字符串+域名的一部分+数字,例如这里取域名的前两个字母,密码就变成了:
Wxhcdpgji315
这里就得到了一个12位的好记又难破解的密码了,为了进一步增加破解的难度,可以将密码用特殊符号包起来,比如:
%Wxhcdpgji315# (http://www.jianshu.com/)
%Wxhcdpgzh315# (http://www.zhihu.com/)
这样是不是很好记,而且每个网站的都不同。但是万一泄露了呢?还是很容易就能猜出来后面两位就是域名。可以采用的一种方式是将域名部分的字母替换成字母表后面的一位,比如ji就变成kj,zh就变成ai了,这基本就比较安全了,但是没那么好记了,输密码前还得想一会儿。为了避免这种麻烦并提高安全性,可以采用分级的方法[3],将所有账号分为普通/重要/很重要三类,然后每种密码的组合方式不变,但是前面的字符串部分变得不一样,这样就算泄露出了一种密码,其他两大类的密码还是安全的。就像在一个自由电梯的大楼里,每层楼都要密码才能进,这样如果一层的密码泄露了是不影响其他层的安全。举例如下:
这里前面用来分级的三个字符串相关性尽可能小,以免被猜到,这里也是我为什么用dpg(大苹果)、xxj(香香蕉)、ddg(大蛋糕)而不用pg、xj、和dg的原因。如果你有更容易记住而不容易猜的都可以用上。
4. 结语
这样下来密码是不是变得不再混乱了呢?画一下午时间来整理密码吧,给以后节省的时间绝对比一下午多!当然,要是你觉得这样还是太麻烦,可以尝试lastpass等软件。
偏题一下,除了密码设计安全,更重要的是要有安全意识,比如不明确的链接、文件要小心对待,不然再强的密码自己拱手相让也是让人无奈的事。