一種基于字符范圍重定義的口令恢復方法
【技術領域】
[0001]本發明涉及一種口令恢復方法,尤其涉及一種基于字符范圍重定義的口令恢復方法。
【背景技術】
[0002]隨著個人計算機得到廣泛使用,為保護敏感信息,口令變得越發重要,其通過限制訪問計算機和其上所存儲的數據來保護。在用戶忘記他們的口令或在需要訪問該信息時口令卻不可用時,問題出現了。口令恢復(或“口令破解”)是確定未知口令的過程。
[0003]傳統的暴力遍歷是口令破解技術中最基本的方法,也叫口令窮舉,就是將字母或數字按照窮舉的規則生成口令字符串,進行遍歷嘗試。如果事先知道了賬戶號碼,如郵件帳號、QQ用戶帳號、網上銀行賬號等,而用戶的口令又設置的十分簡單,則使用暴力破解工具很快就可以破解出口令來。比如一個四位并且全部由數字組成其口令共有10000種組合,也就是說最多我們會嘗試10000次才能找到真正的口令。利用這種方法我們可以運用計算機來進行逐個推算,也就是說用我們破解任何一個口令也都只是一個時間問題。
[0004]然而,傳統的口令恢復方法有很多局限性,例如,口令中每一位字符的遍歷范圍都是相同的字符范圍(包括小寫字母、大寫字母以及數字0-9),往往需要較多的規則來覆蓋盡可能大的口令范圍以提高口令恢復的成功率。即,普通的暴力遍歷算法,只能帶入所有字符范圍中的字符進行全排列組合,算法復雜度高。當破解8位以內的口令時,在短時間內都無法完成遍歷,對于較為復雜的口令則很難破解出。
【發明內容】
[0005]針對上述現有技術的不足,本發明提供一種基于字符遍歷范圍重定義的口令恢復方法,以通過對口令中字符的遍歷范圍進行重定義,實現對口令的智能分位處理,從而降低口令恢復復雜度,并提高口令恢復速率。
[0006]為了實現上述目的,本發明采用如下技術方案:
[0007]—種基于字符范圍重定義的口令恢復方法,用于在已知口令中的一個或多個字符位置對應的字符范圍時恢復所述口令,包括以下步驟:
[0008]步驟一,標識所述口令中字符范圍未知的各字符位置所對應的字符范圍,包括小寫字母、大寫字母以及數字0-9 ;
[0009]步驟二,標識所述口令中字符范圍已知的各字符位置所對應的字符范圍;
[0010]步驟三,按照預定順序從所述口令中每一個字符位置所對應的字符范圍中各選擇一個以生成一個口令字符串;以及
[0011]步驟四,將所述口令字符串輸入至一口令匹配模塊中以與其中預存的所述口令進行比較,當所述口令字符串與所述口令一致時,口令恢復結束,否則,返回執行所述步驟三。
[0012]進一步地,所述口令中字符范圍已知的各字符位置所對應的字符范圍包括小寫字母、大寫字母、數字0-9、小寫字母和大寫字母的組合、小寫字母和數字0-9的組合、以及大寫字母和數字0-9的組合中的一種。
[0013]進一步地,所述口令匹配模塊為登錄界面。
[0014]優選地,所述預定順序是指先按字母順序選擇小寫字母,再按字母順序選擇大寫字母,最后按從小至大的順序選擇數字0-9。
[0015]進一步地,所述口令恢復方法基于FPGA實現。
[0016]綜上所述,當已知口令中的一個或多個字符位置對應的字符范圍為小寫字母(a-z)、大寫字母(A-Z)或數字(0-9)或者兩兩選擇時,本發明將該字符位置的遍歷字符范圍縮小為相應的小寫字母(a-z)、大寫字母(A-Z)或數字(0-9)或者它們的兩兩選擇,算法復雜度將大大降低,口令恢復速率將提高。
【附圖說明】
[0017]圖1為基于字符范圍重定義的口令恢復方法的流程圖。
【具體實施方式】
[0018]為使進一步深入了解本發明的技術手段與特征,謹配合附圖再予舉例進一步具體說明于后:
[0019]—般而言,口令的字符范圍全集為S:包括小寫字母(a?z)、大寫字母(A?Z)和數字(O?9)。當用戶未能記住口令時,可以通過恢復升破解該口令來得到對所保護的材料的訪問。
[0020]口令恢復的復雜度取決于要恢復的口令的大小(即,位置的數量)和每一位置對應的字符范圍。若口令長度為n,按傳統口令恢復方法,則對該η位口令進行窮舉,S卩,這η位字符每一位的遍歷范圍都為S,窮舉次序都為26個小寫字母(a?z)、26個大寫字母(A?Z)、10個數字(O?9)。因此每一位都需要窮舉62個字符,再對這些字符進行組合形成η位數的口令,則,產生的總口令數為62。個,算法復雜度為0(62 η)。
[0021]圖1示出了本發明,S卩,基于字符范圍重定義的口令恢復方法的流程圖。假設已知口令中的一個或多個字符位置對應的字符范圍,則本發明的方法包括如下步驟:
[0022]首先,標識口令中字符范圍未知的各字符位置所對應的字符范圍,該字符范圍為全集S,即,包括小寫字母、大寫字母以及數字0-9。
[0023]其次,標識口令中字符范圍已知的各字符位置所對應的字符范圍,例如,該字符范圍可以是小寫字母、大寫字母、數字0-9、小寫字母和大寫字母的組合、小寫字母和數字0-9的組合、以及大寫字母和數字0-9的組合中的一種。
[0024]然后,按照預定順序從口令中每一個字符位置所對應的字符范圍中選擇一個生成一個口令字符串,該預定順序一般為先按字母順序選擇小寫字母,再按字母順序選擇大寫字母,最后按從小至大的順序選擇數字0-9,當字符范圍缺少小寫字母、大寫字母和數字中的某一項時跳過。
[0025]最后,將口令字符串輸入至一口令匹配模塊(如登錄界面)中以與其中預存的口令進行比較,當口令字符串與口令一致時,口令恢復結束,否則,返回執行步驟三。
[0026]下面以兩個具體實例來解釋本發明的方法:
[0027]實例1,以6位長度口令CPU123為例。假設已知口令前三位字符為CPU,且已知后三位都為數字,則恢復后三位字符即可恢復該口令。
[0028]若按傳統口令恢復方法,需對后三位字符進行窮舉,這三位字符每一位的遍歷范圍都為S,窮舉次序都為26個小寫字母(a?z)、26個大寫字母(A?Z)、10個數字(O?9)。因此每一位都需要窮舉62個字符,再對這些字符進行組合形成三位數的口令,則,產生的總口令數為62*62*62 = 238328個,算法復雜度為O (623)。
[0029]采用本發明的基于字符遍歷范圍重定義的口令恢復方法時,由于已知后三位都是數字,則可設置遍歷字符范圍為N:數字(0-9),即三位字符每一位的遍歷范圍都為N,窮舉次序都為O?9。因此每一位都需要窮舉10個字符,再對這些字符進行組合形成三位數的口令字符串,則,產生的總口令數為10*10*10 = 1000個,算法復雜度為O (103)。
[0030]此例中,本發明的方法較傳統口令生成方法少生成了 238328-1000 = 237328個口令。
[0031]實例2,以一個6位口令為例,假設原口令為Qy5Bk3。已知口令為6位數,且第一位為大寫字母,最后一位為數字,其余4位的字符范圍未知。
[0032]若按傳統口令恢復方法,則對該6位口令進行窮舉。這6位字符每一位的遍歷范圍都為S,窮舉次序都為26個小寫字母(a?z)、2個大寫字母(A?Z)、10個數字(O?9)。因此每一位都需要窮舉62個字符,再對這些字符進行組合形成6位數的口令,則,產生的總口令數為 62*62*62*62*62*62 = 56800235584 個,算法復雜度為 O (626)。
[0033]采用本發明的基于字符遍歷范圍重定義的口令恢復方法時,由于已知第一位為大寫字母,最后一位為數字,其余4位屬于未知字符。則可設置第一位字符的遍歷字符范圍為D:26個大寫字母(A?Z),需要窮舉26個字符;中間四位由于未知字符范圍,可設置這四位字符每一位的遍歷范圍都為S,窮舉次序都為26個小寫字母(a?z)、26個大寫字母(A?Z)、10個數字(O?9),因此這四個字符每一位都需要窮舉62個字符;最后一位的遍歷范圍為N:0?9,需要窮舉10個字符。因此每一位都需要根據各自的字符范圍進行字符窮舉,再對這些字符進行組合形成6位數的口令,則,產生的總口令數為26*62*62*62*62*10 =3841847360 個,算法復雜度為 O (26*62*62*62*62*10)。
[0034]此例中,本發明的方法較傳統口令生成方法少生成了 56800=52958388224個口令。應該理解,本發明可基于FPGA實現。
[0035]由此可見,本發明的方法能減少大量不必要的口令生成,能夠節省口令恢復的總體時間,提尚效率。
[0036]以上所述的,僅為本發明的較佳實施例,并非用于限定本發明的范圍,本發明的上述實施例還可以做出各種變化。即凡是依據本發明申請的權利要求書及說明書內容所做的簡單的、等效變化與修飾,皆落入本發明專利的權利要求保護范圍。本發明未詳盡描述的均為常規技術內容。
【主權項】
1.一種基于字符范圍重定義的口令恢復方法,用于在已知口令中的一個或多個字符位置對應的字符范圍時恢復所述口令,其特征在于,包括以下步驟: 步驟一,標識所述口令中字符范圍未知的各字符位置所對應的字符范圍,包括小寫字母、大寫字母以及數字0-9; 步驟二,標識所述口令中字符范圍已知的各字符位置所對應的字符范圍; 步驟三,按照預定順序從所述口令中每一個字符位置所對應的字符范圍中各選擇一個以生成一個口令字符串;以及 步驟四,將所述口令字符串輸入至一口令匹配模塊中以與其中預存的所述口令進行比較,當所述口令字符串與所述口令一致時,口令恢復結束,否則,返回執行所述步驟三。2.根據權利要求1所述的基于字符遍歷范圍重定義的口令恢復方法,其特征在于,所述口令中字符范圍已知的各字符位置所對應的字符范圍包括小寫字母、大寫字母、數字0-9、小寫字母和大寫字母的組合、小寫字母和數字0-9的組合、以及大寫字母和數字0-9的組合中的一種。3.根據權利要求1所述的基于字符遍歷范圍重定義的口令恢復方法,其特征在于,所述口令匹配模塊為登錄界面。4.根據權利要求1所述的基于字符遍歷范圍重定義的口令恢復方法,其特征在于,所述預定順序是指先按字母順序選擇小寫字母,再按字母順序選擇大寫字母,最后按從小至大的順序選擇數字0-9。5.根據權利要求1所述的基于字符遍歷范圍重定義的口令恢復方法,其特征在于,所述口令恢復方法基于FPGA實現。
【專利摘要】本發明提供一種基于字符范圍重定義的口令恢復方法,用于在已知口令中的一個或多個字符位置對應的字符范圍時恢復所述口令,包括:步驟一,標識口令中字符范圍未知的各字符位置所對應的字符范圍;步驟二,標識口令中字符范圍已知的各字符位置所對應的字符范圍;步驟三,按照預定順序從口令中每一個字符位置所對應的字符范圍中選擇一個生成一個口令字符串;步驟四,將口令字符串輸入至一口令匹配模塊中以與其中預存的口令進行比較,當口令字符串與口令一致時,口令恢復結束,否則,返回執行步驟三。本發明通過對口令中字符的遍歷范圍進行重定義,實現對口令的智能分位處理,從而降低口令恢復復雜度,并提高口令恢復速率。
【IPC分類】G06F21/31
【公開號】CN105069334
【申請號】CN201510523913
【發明人】夏霙, 斯雪明, 李翔, 吳中明
【申請人】上海數據分析與處理技術研究所, 上海紅神信息技術有限公司, 無錫市同威科技有限公司
【公開日】2015年11月18日
【申請日】2015年8月24日