為什麼把密碼設成「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

延伸阅读

延伸阅读

多伦多6月房屋销量暴跌16% 潜在买家仍在观望!

联邦政府明日发放退税金 今年能领多少?

七年前北约克夫妇涉虐杀儿子 最高法院下令重审原因是?

多伦多市居民现可将咖啡杯扔进蓝色回收箱中!