今天,我把用了有十多年的密码给改掉了。
这一个密码起源于 1999~2000 年,那时候是我刚开始接触互联网的时候。要上网就要有一个个人 id,在当时就是 email 账号。
在 Gmail 出现之前,没有人想到免费的电子邮箱的空间可以上 G。开始的时候还好一些,似乎是泡沫刚开始的时候,各种免费邮箱层出不穷,空间从 1M 到 100M 不止。加上服务、口碑、稳定性等因素,我选择的是新浪的邮箱。同时代的还有网易、搜狐等,不过综合都不如新浪。我那时候还是追求高大全的年龄,因此新浪那 50M 的巨大空间打动了我,我就不会再看其它的邮箱了。之后中华网又出了 100M 的 @china.com 邮箱,我们又惊为天人,赶紧申请,后来这个网站也没了。几年后我得知新浪邮箱的空间由 50M 成为了 10M,欲哭无泪但也相当无奈,因为这时电子邮箱的泡沫破裂了,没有人提供大空间的邮箱,我也只能凑合着用。后来父亲的公司的邮箱系统可以免费注册,我用本名注册了一个,于是一直用它。再之后我成功弄到了 Gmail 的邀请,然后其它的邮箱都成了浮云了。
在我注册第一个邮箱时,我真是什么也不懂,从新浪的首页上找了半天,愣是没明白新浪账号和新浪邮箱的关系,最后不了了之,到了后来问了同班同学才知道要申请邮箱就是要申请账号。那时我刚开始上网,把一切都看得很正式,邮箱的名字也想了半天。到我申请账号的时候新浪账号的用户名已经被占用的差不多了,到了最后我搜肠刮肚才起了一个到现在看来没有任何含义的用户名。密码我也想了半天,后来参考过去同学的密码才弄好。其中包含了大小写字母和数字,基本上没有什么含义,但其中包含了我的名字。为了别忘记密码,我把这个密码给牢牢记住了。到后来我申请其它的账号的时候,懒得想新密码,就一直用着这个密码。
这个密码总体来说感觉还可以。有些网站填写密码的时候会对密码强度进行评估,这个密码的结果总是 strong。一般人想从个人信息里猜出密码来也不可能。不过当我后来申请 MSN/hotmail 账号的时候,MSN 不允许密码里包含姓名相关的字符,于是这个密码就被荡下来了。不过我在申请完毕后把密码又给改回来了,因为我不想再记新的密码。
我比较早就知道网站存储密码的原理了,于是一直觉得这种密码都很安全。到了 2007 年 3 月,我知道了用 md5 等算法保存的密码很容易破解。去这个网站把我的密码被 md5 转换后的密文输入进去,几乎马上就出来了我的密码原文。有了大型数据库后,用暴力解法计算各种密文,再逆向破解,在数据量足够大的情况下,这种密码保护很脆弱。
单纯这么个问题其实也没什么,但我在这十多年里一直使用这同一个密码,包括我的电子邮箱与各大网站上的注册账号。如果我的信息被别人看到,别人再算出我的密码来,就可以根据我登陆的邮箱地址和我的网站注册密码来登陆我的邮箱,因为这两者是完全一样的。这是一个比较大的安全隐患,我为此考虑了很长时间了。
在注册网站账号时,我选的用户名比较不错,在注册网站的时候我极少遇到过重名的情况。所以我用这个用户名和密码在无数的网站上注册了无数个账号。我现在根本不记我在哪个网站上注册了什么账号。遇到需要登陆的时候,我就用这个用户名和密码登陆,如果不行就用备用的用户名,如果再不行就说明我没在这个网站注册过,然后我就注册一个账号,用的就是我一直用的用户名。我觉得这样挺方便。
但这无数个账号就是隐患的来源,只要有其中一个网站发生了我上一段中说的那种情况,我的邮箱就危险了。从目前来看,电子邮箱是我所有网络 id 里最重要的一个。虽然我的邮箱目前在自己的域名下,不管怎样都会找回我的密码,但我的隐私什么的泄露出去,可不是一件好玩的事情。
这些网站的账号太多了,一一更改明显不现实,所以我要做的就是更改我的邮箱密码。
我在上高一的时候开始接触 USACO 上的题库。那时那个系统还比较低级,注册的时候不问你要设定什么密码,系统会给你生成一个 7 位的字母和数字组成的密码,日后不允许更改。用户名也不能自由设定,而是根据你的邮箱地址来生成的。比如我注册时用的邮箱是 liufeng@sd-xxxxxxx.cn,于是我的用户名就成了 liufeng1。我记不住系统给的密码,于是就把用户名和密码发到自己的邮箱里,每次去做题的时候都从邮箱里复制密码然后粘贴过去。久而久之,大概半年后,我也自己记住了密码,可以不用查看就能登陆了。
这个密码我感觉不错,没有任何信息,所以不易破解;但长度很短,非常容易记忆。我到了加拿大之后,有一次回忆起过去的生活,于是又上了 USACO 的网站,发现我竟然还把这个密码记的清清楚楚的,并且可以成功登陆这个系统,这是在五年多之后了。这时我发现这个系统已经允许用户修改自己的密码了,我非常缅怀那时候的日子,包括这个密码,于是就留着没动。
这次我改的新邮箱密码,就是以这个密码位基础,添加了一点新东西生成的。目前感觉不错,接下来就是确保记忆了。