为什么把密码设成「jK8v!ge4D」仍然不安全?

加拿大都市网

首先,请仔细看看下面两组密码。你认为破解哪组密码更简单呢?你认为哪组密码更方便记忆呢?

​jK8v!ge4D(含大小写字母、数字和符号)

greenelephantswithtophats(戴着礼帽的绿色大象)

对于这个两个问题,无论从破解难度,还是记忆方便度来说,答案都是第二组密码。

然而,在各种互联网的各种平台上,我们仍然在采用看起来像第一组密码的方式来设置密码。大家都想当然地认为,只要密码设置地过于复杂,不方便记忆,那这个密码就不容易破解。

接下来,我们就详细来聊聊这个话题。

用密码设置规则来迫使你设置密码

从某种程度上来讲,前端开发者应该为用户提供全方位的帮助,让用户设置并输入一个从传统意义上来讲非常安全的密码。它至少应该包含8位字符,其中还包括大小写字母、一个数字,如果还没有安全感的话,甚至还可以加入感叹号等特殊符号。

基于此,“jK8v!ge4D”通常都会被视作是一个非常安全的密码典范。毫不夸张地说,在绝大多数的互联网平台上,平台都会要求你按照这种模式来设置密码,因此,你可能就会认为,这种组合的密码就是非常安全的密码。

然而,这种组合的密码并不安全。它反而是非常愚笨的密码设置方式,是一个极容易被破解的密码。

首先,这种密码设置方式,会增加用户记忆密码的复杂程度。他们很有可能无法记住自己设置的密码,从而“另辟蹊径”,在笔记本或者其它地方把这个密码记录并保存下来,而这种方式就很容易被他人“破解”。

其次,由于大多数密码都采取这样的密码设置组合,就复杂性而言,已经是其心目中的复杂密码了。因此,为了避免不必要的麻烦,他们可能会在各种平台和设备上都采用相同的密码。

如果某个平台的数据库遭到攻击,那你可能会暴露所有平台和设备上相同的密码。这么说来就相当可怕了,而实际上,真实情况比我们想象的还要可怕。

因此,我个人建议,对于不同的平台,还是要设置不同的密码。然而,值得注意的是,如今大多数用户在各个平台上都有大量的账户。如果设置不同的密码,怎么才能记住所有的密码呢?一些超级用户可能会使用密码工具,来帮助其生成并管理密码,但一般用户基本上都没有这么做。

破解密码需要多久?

我们先看看“gtypohgt”这个密码。它由八个随意的字母符号组成,全部都是小写字母。对于这种密码,要破解它只需要几分钟的时间。

如果把其中某几个字符换成数字,比如“g9ypo3gt”,那破解时间至少就需要一个小时了。如果再把其中的小写字母换成大写字母,比如“g9YPo3gT”,那可能需要几天才能破解成功。另外,如果你再往里面添加一个特殊字符,比如“g9Y!o3gT”,那可能破解这个密码都需要一个月的时间。

“g9Y!o3gT”这个密码设置组合,就是我们通常所认为的安全密码。这样的密码设置,很难被他人猜到,也完全不属于常规设置密码。要破解这样的密码,的确需要一定的时间。但问题在于,这样的密码设置,会直接增加用户的记忆难度。

然后,我们再看另一组密码“greenelephantswithtophats(戴着礼帽的绿色大象)”。这组密码包括24个小写字母,没有数字、随机字母和特殊字符。虽然你会认为这样的密码设置非常简单,但要想破解这样的密码,可能需要至少上百万年时间。

所以,只要你在密码组合中增加一个字符,破解这个密码的难度实际上是在呈几何数增长。前述24个字符的密码,并不像一般的“666888”“elephant(大象)”等常用的密码,而且也很难让人猜测。

这才是安全的密码

因此,我建议,设置密码,最好就让这个密码变成一个故事。比如,在设置Facebook账号的密码时,你可以使用“afaceforabookbutapizzaforahorse(书有一张脸,但马有一个披萨)”。总之,最好通过视觉呈现的方式来设置你的密码。

我们的记忆强项,反而就是在这些特殊内容的记忆方面。突然之间,你的密码就非常强大了,而且不仅记忆方便,而且还可以避免过于重复。此外,即便是跟你关系密切的人,恐怕也很难去猜测这些密码。

日常谈话中,你肯定很少会提到乌龟吧?那你是否见到过紫色的乌龟呢?肯定没有吧。那么,不妨尝试下,在脑海中视觉呈现一只紫色的乌龟。然后你就可以这样设置一串密码:“ioncesawapurpleturtleiswear(我发誓我曾经见过一只紫色乌龟)”。要破解这样的密码,至少需要上百万年的时间,甚至连跟你睡在一张床上的伴侣都可能猜不到。

从视觉化效果方面来讲,以下这些密码都非常容易呈现出来。

​flyingcarsthatcannotflyarenotflying:如果不会飞的汽车就不是飞车。

​applesmaybegreatbutpearsarelikeheaven:苹果虽然好,但梨子却更好。

​goatswithshoesenjoytrainsonrainydays:穿鞋的山羊喜欢在雨天搭火车。

​总之,其他人很难猜测这些密码。

然而,可能有些网站会不允许用户这样设置密码。根据其设定的密码设置规则,这个密码中没有包含数字或大写字母、密码过长,或者处于其他非技术因素无法设置该密码。

因此,你也可以通过一些小伎俩来“骗”这个系统。比如,在任何密码字符串的最后添加“A1!”。现在,你设置的密码既有大小写字母,也有数字和特殊字符了。只要密码设置没有对字符长度有要求的,那这个密码肯定就可以设置成功。

即便你在所有的密码字符串后面都添加同样的“A1!”,但前面字符串的不同,仍然会保障该密码的安全性。无论是“ioncesawapurpleturtleiswear(我发誓我曾经见过一只紫色乌龟)”,还是“ioncesawapurpleturtleiswearA1!(我发誓我曾经见过一只紫色乌龟A1!)”,要想破解它们,都是不太可能的。因此,在密码字符串的最后加上“A1!”,除了稍微有点不方便之外,没有其它弊端。

对于网站运营方而言,他们肯定不想发生任何数据泄露相关的丑闻。因此,即便可能会造成一系列麻烦,但他们只好强迫让用户设置一个相对安全的密码。

总之,在密码设置过程中,既要方便你自己记忆,同时要让别人无法破解。

当然,即便你对这样的密码设置技巧不感兴趣,那你最好千万不要设置“123456”“qwerty(顺着键盘按键随意输入几位字符)”等密码。这些密码,极度不安全,也非常容易被破解。

所以,对于这样的用户而言,我们前端开发者只好强迫你设置“jK8v!ge4D”这样的密码。

(原作者前端开发师Jacob Bergdahl,译者:俊一​,编者有删减,图片来源Pixabay)​​​

share to wechat

延伸阅读

延伸阅读

蒙特利尔百年老房子涂成Koodo色 打广告打出大麻烦

LCBO罢工怎么办?还有这五个方法可买酒

华裔居民已经豁免空置税 突然税务局反悔了?!

加拿大租房市场持续火热 租金飙升何时到顶?