● 查字典法
有些人為了方便記憶,會用現成的單字當作密碼,比方 apple 蘋果。查字典法就是有一本字典(牛津字典什麼的),套裡面的單字,去試密碼。
這種方法通常只針對英文字典,所以如果密碼用中文的(轉成英文變亂碼),字典破解就沒用了。
比方樓主說的:道可道非常道
注音拼法:2l4 dk3 2l4 zo t;6 2l4
當然密碼不能空格:2l4dk32l4zot;62l4
就變成一串亂碼,關鍵在這詞是有中文意思的,可以記憶。表面看起來是一串亂碼,實際是中文詞彙的注音拼法。
使用者是去記中文意思,而不是那串亂碼,那中文的意思,按照鍵盤上注音拼法,打出來就是那一串亂碼,方便記憶,並且密碼不弱。
● 暴力破解法


一個典型的密碼鎖,假設不用漏洞(直接撬開簧片什麼的),這種三位數的密碼鎖,窮舉可能性,只有 000~999,共 1千種組合。
暴力破解,就是窮舉可能性,從最小的試到最大,因為電腦在 try 的速度很快,一秒就可以嘗試成千上萬種可能性。
密碼一定是鍵盤可以打出來的,也就 a-z A-Z 0-9 幾個標點符號....等等。
它的可能性是有限的。只要窮舉(暴力破解),就一定會被試出來。
應付這種暴力破解,常見方法有:
-增加位數
比方 1024位 加密,就算可能性是有限的,普通電腦想破解都得上百年。
當然這種 1024位 的密碼,人類不可能記住的,這種的都是 "金鑰",把高位數的密碼儲存在一個檔案或晶片。
-限制輸入次數,限制允許登入的時段
比方連續三次輸入錯誤,帳號鎖定拒絕登入,之後不管如何試都沒用了。要找管理員把帳號解鎖。
-禁止 root(Administrator)登入
電腦的登入,分成:帳號 / 密碼
要先知道帳號名稱,才能去試密碼,而如果帳號名稱都不知道,要同時試出帳號名稱與密碼,可能性是無限大的,無法窮舉。
每種作業系統,都有一個預設的超級管理員帳號,名稱是固定,比如 root 或 Administrator。這種帳號要禁止遠端登入,因為它名稱固定,根本不用猜。
*************************************
有一種高端的方法:可變密碼
密碼能夠被暴力破解,是因為它固定。
假如密碼是會變化的呢?

假設有這麼一個密碼鎖,它的密碼是 每小時、每日,都會自動更換。
前一小時密碼是 789,後一小時又變成 087
當有人試到 788 的時候,密碼突然變換了,變成 087。繼續試下去也無法破解了。
作業系統有一種排程機制,比如 Linux 有 cron,windows 也有排程,能排某個時間,或每隔幾分鐘、每隔幾小時,每隔幾日,自動運行一項任務(執行檔、批次檔、腳本)
然後改密碼,其實可以用指令的方法去改,就是可以寫一個腳本檔(批次檔),去改密碼。
讓作業系統,排程每隔一小時,或每日,運行那個改密碼的腳本,就能使密碼一直變換。
然而:使用的人要知道如何算出密碼啊,否則使用者自己都登不進,還有什麼意義。
套公式,設計一個公式可以和時間扯上關係的:
比方密碼基底是:PassWorld
然後現在是 22點
組合起來的密碼是:PassWorld22
當然這只是舉例啦,要這麼簡單立馬就被破解了。公式可以設計複雜一點,變化大一點的。
使用者自己都不知道密碼(但知道公式),還要算的,才知道這個小時,或今天這個日期的密碼是什麼。
這種密碼不適合用在常常要登入的東西,因為還要花時間去算出密碼。但可以用在需要高度安全性的場合。
*******************************
還有一種是:外部輔助登入法
比方說:SSH 直接去登,是登不進的
得先進去一個隱密網站的網頁(網站可以架設在主機中,或別處),輸入一些東西,會聯動主機去重設 SSH 可登入。
就是有程序步驟的,直接去登是無法登的,根本不接受(拒絕該使用者帳號 SSH 登入),要先別的地方,開啟祕密機關,讓主機可以接受遠端登入,才能去登。
然後這個機關也有限時自動復位的,幾分鐘後就會復位失效。要再登,要再去開啟。
雙重保障的意思。
類似有的線上遊戲,有 簡訊鎖,直接去登是無法登的,要先用手機傳一個簡訊給專屬號碼,開啟登入機關,才能去登入。
在 Linux 中,大致思路是:
設計一個網頁,PHP 網頁什麼的,開啟機關後,會改寫一個純文字檔案,值:0 或 1。0不允許登入,1允許登入。
然後 SSH 登入,第一步驟是會運行 bash 初始化腳本,在腳本中寫 shell script 程式,檢查那個文字檔的值,0 的話直接 exit (logout 登出),1跳過。
如此就可以實現外部輔助登入。





























































































