2013-01-16 29 views
1
  • 沒有鍵盤模式。即在鍵盤上垂直或水平相鄰的鍵。例如,'ZXCVBN123'應該被拒絕。
  • 沒有常用的單詞,也沒有反寫或用特殊字符僞裝的單詞。例如'Universe1'和'Un1ver $ e'應該被拒絕。
+0

嘖嘖,這是一個艱難的! :) – mortb

+0

爲什麼不只是將自己的密碼分配給用戶,並且不讓他們更改它們,除非請求再次創建新密碼?我認爲用戶會很沮喪,當第一個說10個左右的密碼他們試圖選擇不會通過,並且他們會更少挫折,如果你只是給他們分配一些密碼,即使它不可能記住... – mortb

+0

我同意。但顯然,破解我給出的例子並不需要很長時間。 http://howsecureismypassword.net/ –

回答

1

那麼,首先你需要確切地定義你想要的。什麼是鍵盤模式? 'jk'是鍵盤模式還是'jkl'?最短的模式是什麼? 'gy'是一種模式嗎?首先,你需要確定一個模式的真正含義。

然後你應該列出所有可用的模式(並不是那麼多,你有36個起點和4個方向從每個起點出發)。當你得到一個密碼時,嘗試找到它中的每個模式。請注意,如果您決定最短的模式爲3個字母長,則不需要搜索4個字母的模式,所有4個字母的模式都包含3個字母的模式。

至於說話,這很容易,但首先你需要列出所有不允許的轉換($ - > S,1-> i等)。一旦你得到一個詞,應用所有的轉換,讓自己成爲一個「規範化」的詞。將規範化密碼與所有合法詞彙的字典進行兩次比較 - 第二次反轉密碼。

您可能需要做一些比這更復雜的事情,因爲您需要忽略單詞末尾的數字 - 有時。不可信的可以取代'不可思議的',儘管不可信的不是一個字。