2008-09-24 29 views
5

我正在研究密碼驗證算法,需要檢查字典中的潛在密碼。如果密碼或其中的任何部分都可以在字典中找到,請拒絕它。該功能很簡單,但我在哪裏可以找到單詞列表?是否有一個Web服務已經在那裏查找單詞?我捅了一些,但沒有發現任何尖叫「挑我!」的東西。謝謝。我在哪裏可以找到用於密碼驗證的字典?

編輯:當我問這個問題時,我沒有想到特定的密碼詞典,如@Joe Skora,其中會包含可以避免的單詞。所以,我會擴展這個問題來包含這種類型的字典,以及我可能沒有考慮過寫這個函數的其他任何東西。

平臺是C#/ ASP.Net/SQL Server。這只是需要實施的強密碼算法的一個組成部分。再次感謝。

回答

0

我認爲舊的程序是wwwhack ..它有,你可以作爲一個基礎使用一些暴力破解字典(它們被列爲純文本文件,我認爲),除此之外,我不知道有什麼地方是向公衆提供共同的PW詞典。

1

有幾種開放式許可證通用(不是特定於密碼)的單詞列表/數據庫。我最喜歡的是Princeton WordNet

1

通常

  • 在/ usr /字典/單詞

  • 在/ usr /共享/字典/單詞

根據你有哪些unix。

有更多可在網上,像這樣free multilingual dictionary

+1

他在一個ASP.Net平臺上;我懷疑他有權訪問/ usr /任何東西。 – hometoast 2008-09-24 16:46:46

0

一對夫婦字典/單詞表可here

1

要驗證強密碼,您應該做的不僅僅是檢查字典中的單詞。但是如果沒有圖書館已經在你的平臺上做到這一點(順便說一句,這是什麼意思?) - 簡單地對待它就像你想拼寫檢查一樣。如果密碼的任何部分通過拼寫檢查程序,則會失敗。

Microsoft有一個library for spell-checking

如果您特別想使用web service, consider this

+0

謝謝。字典檢查只是密碼驗證的一個組件。 C#/ ASP.Net/SQL Server 05. – JasonS 2008-09-24 04:50:34

6

​​上的免費詞典在預期密碼的所有子給你很多免費的詞典。如果您將它們上傳到數據庫,則可以快速查找已知單詞。

然而不認爲這會消除非蠻力攻擊

你應該看看密碼破解應用程序!字典攻擊的最簡單擴展是組合單詞。此外,還有其他類型的攻擊,如替換字符,在鍵盤上彼此靠近。 (例如:轉d到f)

迄今爲止我所見過的最好的密碼破解應用程序是John the Ripper。如果你看到,它使用什麼樣的攻擊,你可以建立一個更好的密碼生成器。

你也應該學習用戶的使用習慣,因爲一個典型的密碼是錯誤的密碼。例如,大多數用戶將數字放在密碼末尾,因此密碼很強,其中間有一個數字。

1

我認爲沒有必要檢查字典,尤其是如果你甚至想要拒絕你的密碼的一部分。英語有很多小字,並延伸到多語種詞典可能會阻止使用任何合理大小的密碼,而沒有其他字母不是'z''q'或'y':'a''在' 「濟」「嗯」「O」

我不完全理解爲什麼你在字典關心密碼的時候,你可以很容易地施加其他簡單的規則:

密碼最小8個字符的長度必須包括:

  • 2至8個大寫字符
  • 2〜8的小寫字符
  • 2到8位數字
  • 1至4個特殊字符(*** +」 %& /() - [] {} \ <>等)
+0

我不在乎詞典中的詞語,但要求做到! – JasonS 2008-10-07 21:58:05

+2

NIST不同意你的看法。 http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf – DanO 2010-07-12 17:12:46

1

我從here得到了單詞列表,並將它加載到我的數據庫中。刪除了少於3個字符的所有單詞。

寫了一個C#函數來解析密碼的每個子字符串(現在只轉發)到一個xml字符串中。

將xml字符串傳遞給存儲過程,該存儲過程使用每個子字符串創建一行來創建1列臨時表。

將臨時表加入到我的單詞列表中,如果有任何行被返回,我知道密碼包含詞典單詞,並且我知道匹配的是哪些子字符串。

這很好,但我想我們最終會修改單詞列表,因爲它可能太嚴格了。

謝謝你的單詞列表上的幫助

我本來試圖去拼寫檢查路線,但我沒有找到一個方法來做到拼寫檢查無任何第三方組件(再分配太昂貴我們正在銷售產品),或者需要服務器上的MS Word。

相關問題