一種身份證號碼的識別方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種身份證號碼的識別方法及裝置,克服目前還沒有較為成熟的從網(wǎng)絡數(shù)據(jù)中識別身份證號碼的缺陷,該方法包括:從字符流中識別出可能為身份證號碼的字符串;采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進行驗證;將通過驗證的所述可能為身份證號碼的字符串作為可能有效的身份證號碼。本申請的實施例可以在網(wǎng)路安全領域?qū)Υ罅髁康木W(wǎng)頁內(nèi)容進行過濾識別,準確性高、速度快、硬件設備上占用內(nèi)存空間小。
【專利說明】一種身份證號碼的識別方法及裝置
【技術領域】
[0001] 本發(fā)明涉及號碼識別技術,尤其涉及一種身份證號碼的識別方法及裝置。
【背景技術】
[0002] 身份證號碼的識別在網(wǎng)路安全領域中,如入侵檢測、短消息過濾、信息查詢等方面 均有重要的應用。隨著網(wǎng)絡技術的發(fā)展和Internet的普及,個人信息等網(wǎng)絡信息的安全和 保護,越來越受到人們的重視。
[0003] 本文中身份證號碼的識別,是指在網(wǎng)路信息處理系統(tǒng)中,從網(wǎng)絡數(shù)據(jù)或者從文件 數(shù)據(jù)(如網(wǎng)頁)中,識別并提取出有效的身份證號碼。這些號碼有可能是網(wǎng)路上某些人的 違規(guī)發(fā)布,容易造成個人隱私信息的泄露。
[0004] 可以通過識別身份證號碼,以及預警或者隱藏等手段,來保護身份證信息的違規(guī) 泄漏。但目前這方面還沒有較為成熟的技術。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明所要解決的技術問題是克服目前還沒有較為成熟的從網(wǎng)絡數(shù)據(jù)中識別身 份證號碼的缺陷。
[0006] 為了解決上述技術問題,本發(fā)明提供了一種身份證號碼的識別方法,包括:
[0007] 從字符流中識別出可能為身份證號碼的字符串;
[0008] 采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進行驗證;
[0009] 將通過驗證的所述可能為身份證號碼的字符串作為可能有效的身份證號碼。
[0010] 優(yōu)選地,從字符流中識別出可能為身份證號碼的字符串,包括:
[0011] 采用能夠?qū)τ行?shù)字、可忽略字符、非法字符以及可能的結束符進行區(qū)分的哈希 表對所述字符流進行字符識別;
[0012] 將十八位數(shù)字組成的字符串或者十七位數(shù)字以及一位X或X的字符串識別為所述 可能為身份證號碼的字符串。
[0013] 優(yōu)選地,采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進行驗證, 包括:
[0014] 采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進行身份證號碼的 地址碼、出生日期碼以及校驗碼的驗證。
[0015] 優(yōu)選地,采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進行身份證 號碼的地址碼的驗證,包括:
[0016] 利用二維數(shù)組對所述可能為身份證號碼的字符串中的前六位字符進行所述地址 碼的驗證。
[0017] 優(yōu)選地,利用所述二維數(shù)組的第一維對所述可能為身份證號碼的字符串中的前三 位字符進行所述地址碼的大行政區(qū)號碼的驗證,利用所述二維數(shù)組的第二維對所述可能為 身份證號碼的字符串中的第四至六位字符進行所述地址碼的區(qū)內(nèi)號碼的驗證;
[0018] 其中,所述二維數(shù)組第一維的長度大于等于三位數(shù)字所表示的有效的大行政區(qū)號 碼的數(shù)量,第二維的長度大于等于所有有效的大行政區(qū)號碼內(nèi)三位數(shù)字所表示的區(qū)內(nèi)號碼 的數(shù)量。
[0019] 本申請還提供了一種身份證號碼的識別裝置,包括:
[0020] 識別模塊,配置為從字符流中識別出可能為身份證號碼的字符串;
[0021] 驗證模塊,配置為采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進 行驗證;
[0022] 執(zhí)行模塊,配置為將通過驗證的所述可能為身份證號碼的字符串作為可能有效的 身份證號碼。
[0023] 優(yōu)選地,所述識別模塊包括:
[0024] 識別單元,配置為采用能夠?qū)τ行?shù)字、可忽略字符、非法字符以及可能的結束符 進行區(qū)分的哈希表對所述字符流進行字符識別;
[0025] 判斷單元,配置為將十八位數(shù)字組成的字符串或者十七位數(shù)字以及一位X或X的 字符串識別為所述可能為身份證號碼的字符串。
[0026] 優(yōu)選地,所述驗證模塊包括:
[0027] 第一驗證單元,配置為采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符 串進行身份證號碼的地址碼的驗證;
[0028] 第二驗證單元,配置為采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符 串進行身份證號碼的出生日期碼的驗證;
[0029] 第三驗證單元,配置為采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符 串進行身份證號碼的校驗碼的驗證。
[0030] 優(yōu)選地,所述第一驗證單元配置為利用二維數(shù)組對所述可能為身份證號碼的字符 串中的前六位字符進行所述地址碼的驗證。
[0031] 優(yōu)選地,所述第一驗證單元配置為利用所述二維數(shù)組的第一維對所述可能為身份 證號碼的字符串中的前三位字符進行所述地址碼的大行政區(qū)號碼的驗證,利用所述二維數(shù) 組的第二維對所述可能為身份證號碼的字符串中的第四至六位字符進行所述地址碼的區(qū) 內(nèi)號碼的驗證;
[0032] 其中,所述二維數(shù)組第一維的長度大于等于三位數(shù)字所表示的有效的大行政區(qū)號 碼的數(shù)量,第二維的長度大于等于所有有效的大行政區(qū)號碼內(nèi)三位數(shù)字所表示的區(qū)內(nèi)號碼 的數(shù)量。
[0033] 與現(xiàn)有技術相比,本申請的實施例可以在網(wǎng)路安全領域?qū)Υ罅髁康木W(wǎng)頁內(nèi)容進行 過濾識別,準確性高、速度快、硬件設備上占用內(nèi)存空間小。本申請的實施例通過對將三位 大區(qū)代碼的數(shù)值映射為一個數(shù)值為0-149的有效區(qū)間,節(jié)約了內(nèi)存,降低了成本。
[0034] 本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權利 要求書以及附圖中所特別指出的結構來實現(xiàn)和獲得。
【專利附圖】
【附圖說明】
[0035] 附圖用來提供對本發(fā)明技術方案的進一步理解,并且構成說明書的一部分,與本 申請的實施例一起用于解釋本發(fā)明的技術方案,并不構成對本發(fā)明技術方案的限制。
[0036] 圖1為本申請實施例的身份證號碼的識別方法的流程示意圖。
[0037] 圖2為本申請實施例的身份證號碼的識別系統(tǒng)的流程示意圖。
【具體實施方式】
[0038] 以下將結合附圖及實施例來詳細說明本發(fā)明的實施方式,借此對本發(fā)明如何應用 技術手段來解決技術問題,并達成技術效果的實現(xiàn)過程能充分理解并據(jù)以實施。本申請實 施例以及實施例中的各個特征在不相沖突前提下的相互結合,均在本發(fā)明的保護范圍之 內(nèi)。
[0039] 另外,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系 統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處 的順序執(zhí)行所示出或描述的步驟。
[0040] 我國目前應用的二代身份證,包含有十八位號碼,其編碼規(guī)則是十八位號碼中包 含十七位數(shù)字本體碼和位于十七位數(shù)字本體碼之后的一位數(shù)字校驗碼。其中十七位數(shù)字 本體碼中依次包含六位數(shù)字地址碼、八位數(shù)字出生日期碼和三位數(shù)字順序碼。其中六位數(shù) 字地址碼表示編碼對象常住戶口所在地的行政區(qū)劃代碼;出生日期碼表示編碼對象出生的 年、月、日,其中年份用四位數(shù)字表示,年、月、日之間不用分隔符;順序碼表示同一地址碼所 標識的區(qū)域范圍內(nèi),對同年同月同日出生的人員編定的順序號。校驗碼是根據(jù)前面十七位 數(shù)字碼,按照IS07064 :1983. M0D11-2校驗算法計算出來的結果。
[0041] 六位數(shù)字地址碼中,第一、二位數(shù)字表示編碼對象常住戶口所在地的省份代碼,第 三、四位數(shù)字表示編碼對象常住戶口所在地的城市代碼,第五、六位數(shù)字表示編碼對象常住 戶口所在地的區(qū)縣代碼。也可以將六位數(shù)字地址碼中的前三位作為大行政區(qū)號碼,后三位 作為區(qū)內(nèi)號碼。
[0042] 八位出生日期碼中,依次為四位年份碼、兩位月份碼及兩位日期碼。四位年份碼的 有效值為大于等于1900小于等于2100。兩位月份碼的有效值為大于等于1小于等于12。 兩位日期碼在兩位月份碼為1、3、5、7、8、10以及12時為大于等于1小于等于31,在兩位月 份碼為4、6、9以及11時為大于等于1小于等于30,在兩位月份碼為2且四位年份碼表示閏 年時為大于等于1小于等于29,在兩位月份碼為2且四位年份碼表示平年時為大于等于1 小于等于28。
[0043] 三位順序碼中的前兩位表示編碼對象常住戶口所在地政府所轄派出所的分配碼, 第三位通過奇偶來表示性別。本申請的實施例并不對三位順序碼進行驗證和確認。
[0044] -位驗證碼可以根據(jù)十七位數(shù)字本體碼以及標準算法進行驗算。在其與驗算結果 相等時表示該十七位數(shù)字本體碼及該驗證碼為一真實有效的身份證號碼,與驗算結果不相 符時表示該十七位數(shù)字本體碼及該驗證碼為一無效的身份證號碼。
[0045] 現(xiàn)實生活中,為方便讀寫身份證號碼,往往會在身份證號碼中間插入一些輔助字 符,比如破折號或者點號等,來對身份證號碼進行分節(jié)。
[0046] 如圖1所示,本申請實施例的身份證號碼的識別方法主要包括如下內(nèi)容。
[0047] S110,利用哈希表從網(wǎng)絡數(shù)據(jù)的字符流中識別出可能為身份證號碼的字符串。
[0048] 本申請的實施例利用能夠?qū)τ行?shù)字、可忽略字符、非法字符以及可能的結束符 進行區(qū)分的8位字節(jié)的256項字符哈希(hash)表進行字符識別。該字符哈希表為有效數(shù) 字、可忽略字符、非法字符以及可能的結束符設置不同的值。具體地,本申請的實施例將有 效數(shù)字的值設為1、可忽略字符的值設為2、非法字符的值設為3以及將可能的結束符的值 設為4。
[0049] 本申請的實施例中該字符串包含有可忽略的輔助字符、數(shù)字以及可能存在的結束 符,該結束符表示字符X或X。其中該字符串包含該結束符X或X時,該字符串中的數(shù)字為 十七位;該字符串不包含該結束符X或X時,該字符串中的數(shù)字為十八位。將十八位數(shù)字組 成的字符串或者十七位數(shù)字以及一位X或X的字符串識別為可能為身份證號碼的字符串。
[0050] S120,采用身份證號碼編碼規(guī)則對該字符串進行驗證。其中該驗證,主要是按照身 份證號碼編碼規(guī)則對該字符串進行身份證號碼的地址碼、出生日期碼以及校驗碼的驗證。
[0051] S130,將通過驗證的該字符串作為可能有效的身份證號碼。
[0052] 本申請的實施例根據(jù)8位字符的可能數(shù)值,建立長度為256項的字符HASH表,并 將有效數(shù)字的值設為1、可忽略字符的值設為2、非法字符的值設為3以及將可能的結束符 的值設為4。表示有效數(shù)字的值為1,該有效數(shù)字為10個數(shù)字,包括字符0到9。表示用于 分隔的可忽略字符的值為2,本申請的實施例中可忽略的9個字符包括:空格、tab字符、回 車、換行、點.、破折號(_)、等于號(=)、折號(/)、反折號(\)。表示可能為身份證號碼結 束符的字符為X或X的值為3。不是前述10個數(shù)字、可忽略字符以及結束符的字符均作為 無效字符,其值為4。
[0053] 本申請的其他實施例中,用于表示分隔的忽略的字符還可以有更多,比如感嘆號 (!)、星號(*)、井號(#)等等,凡是可以出現(xiàn)在身份證號碼中間用于對身份證號碼進行分 隔而方便讀寫的字符,均可視為本申請實施例中的可忽略字符,其在本申請實施例的字符 哈希表中值均為2。
[0054] 當讀取輸入字符串時,通過字符HASH表,讀取字符的類型屬性,并采取不同的操 作。每次讀取待處理字符串中的一個字符,以該字符為下標讀取字符HASH表的數(shù)值,對于 值為1的有效字符,在已記錄長度小于19時進行記錄,否則丟棄。對于值為2的可忽略字 符直接丟棄。對于值為3的結束符,如果已記錄的字符串的長度為18,則已記錄的字符串可 能就是一個有效的身份證號碼,完成提取工作;如果已記錄的字符串的長度為17,則將結 束符記錄到字符串中作為一個可能有效的身份證號碼,完成提取工作;其他長度的已記錄 的字符串不是一個身份證號碼,清除該已記錄的字符串(清除緩沖區(qū))。對于值為4的非法 字符,如果已記錄的字符串的長度為18,則將該已記錄的字符串作為一個可能有效的身份 證號碼提交,否則清除該已記錄的字符串(清除緩沖區(qū))。
[0055] 本申請的實施例所建立的字符HASH表,每個ascii碼對應的數(shù)據(jù)項為該ascii碼 的屬性。如hash[48]的值為1,ascii碼48是字符'0',因此其數(shù)值為1(有效身份證字 符),hash [45]的值為2, ascii碼45是字符因此其數(shù)值為2 (可忽略的分隔字符)。 本申請的實施例根據(jù)預設的字符HASH表,以數(shù)據(jù)流中的待檢測字符為下標,查詢得出字符 的類型。在判斷任一字符時,僅需判斷其hash[a]的數(shù)值即可。
[0056] 本申請的實施例通過一次查表,即可完成字符的處理,對有效身份證字符進行記 錄,對無效身份證字符進行終結處理,對可忽略字符進行過濾以及對結束符的判斷處理,結 合身份證號碼長度,快速得出與身份證號碼長度項相符合的字符串,完成身份證號碼的提 取和驗證工作。
[0057] 本申請的實施例將六位數(shù)字地址碼分為三位數(shù)字的大行政區(qū)號碼和三位數(shù)字的 區(qū)內(nèi)號碼。本申請的實施例利用二維數(shù)組對可能為身份證號碼的字符串中的前六位字符進 行驗證。二維數(shù)組第一維的長度大于等于三位數(shù)字所表示的有效的大行政區(qū)號碼的數(shù)量, 第二維的長度大于等于所有有效的大行政區(qū)號碼內(nèi)三位數(shù)字所表示的區(qū)內(nèi)號碼的數(shù)量。利 用二維數(shù)組的第一維對可能為身份證號碼的字符串中的前三位字符進行地址碼的大行政 區(qū)號碼的驗證,利用二維數(shù)組的第二維對可能為身份證號碼的字符串中的第四至六位字符 進行地址碼的區(qū)內(nèi)號碼的驗證。該二維數(shù)組的第一維記錄有有效身份證號碼中所有的大行 政區(qū)號碼,第二維記錄有所有有效大行政區(qū)號碼下有效區(qū)內(nèi)號碼。本申請的實施例,該二維 數(shù)組的第一維為一維大區(qū)hash表,第二維為二維行政區(qū)hash表,通過該一維大區(qū)hash表 和二維行政區(qū)hash表來快速進行六位數(shù)字地址碼的識別。
[0058] 二維數(shù)組第一維的長度大于等于三位數(shù)字所表示的有效的大行政區(qū)號碼的數(shù)量, 第二維的長度大于等于所有有效的大行政區(qū)號碼內(nèi)三位數(shù)字所表示的區(qū)內(nèi)號碼的數(shù)量。由 于大行政區(qū)號碼有許多空值,本申請的實施例為節(jié)省硬件設備的內(nèi)存空間,利用大區(qū)號碼 映射表對三位數(shù)字的大行政區(qū)號碼進行驗證,該大區(qū)號碼映射表的空間大于〇但小于將三 位數(shù)字的大區(qū)代碼的數(shù)值0-999映射為一個數(shù)值小于999的有效區(qū)間,比如為0-149的有 效區(qū)間。該大區(qū)號碼映射表中存儲有目前全國身份證號碼的大行政區(qū)號碼。
[0059] 本申請的實施例為利用長度為1000項的區(qū)內(nèi)號碼映射表對每個三位數(shù)字的區(qū)內(nèi) 號碼進行驗證,其中存儲三位數(shù)字的區(qū)內(nèi)號碼,用來對大行政區(qū)號碼之后的三位數(shù)字進行 驗證。通過兩次查表,即可完成六位數(shù)字地址碼的有效性確認。
[0060] 為節(jié)省空間,本申請的實施例建立行政區(qū)HASH表來完成身份證號碼中六位數(shù)字 地址碼的快速驗證。建立身份證三位大行政區(qū)號碼的映射,把1000長度的數(shù)據(jù)值映射為 150長度的數(shù)據(jù)項值,再建立150*1000的二維數(shù)組,完成六位地址碼的確認。其中,大區(qū) HASH表用來完成身份證號碼中的大行政區(qū)號碼的HASH映射。由于大行政區(qū)號碼中空余數(shù) 值較多,本申請的實施例將其映射為一個長度為150的值域范圍,大大減少了硬件設備所 需的內(nèi)存空間。大區(qū)HASH表中,第0-148項各自對應一個有效的大行政區(qū)號碼,第149項 表示無效區(qū)號。大區(qū)HASH表的數(shù)值,作為二維數(shù)組的第一個下標變量,身份證號碼中的區(qū) 內(nèi)號碼作為二維數(shù)組的第二維下標變量。行政區(qū)二維HASH表中,數(shù)值0表示該號碼不是一 個有效的地址碼,數(shù)值1表示該號碼是一個有效的地址碼。
[0061] 比如對于一個從網(wǎng)頁上獲取到的字符串"aaaal23asdll0. 108-196212302873uuuu uuuuuu",首先依次讀取字符"aaaa",通過字符HASH表判斷其都是無效字符,刪除。然后讀 取字符" 123",通過字符HASH表判斷其為有效字符,進行記錄。緊接著讀取"asd",在讀取 字符"a"時,已記錄的字符串的數(shù)字長度是3,不是有效身份證號碼的長度15或者18,因此 其不是有效的字符丟棄;同樣"sd"字符也丟棄,并且已記錄的字符串" 123"也已不可能成 為一個有效的身份證號碼中的字符,因此也丟棄。緊接著讀取"110. 108-196212302873", 由于通過字符HASH表判斷出"110"、" 108"以及"196212302873"都是有效字符,則按序 進行記錄,同時通過字符HASH表判斷出字符"和是可以忽略的字符,將這兩個字符 忽略。由于已經(jīng)記錄的字符串"110108196212302873"已經(jīng)達到18位長度,則將其作為一 個可能的省份證號碼進行存儲,對其進行是否可能為有效身份證號碼的判斷。采用區(qū)號 判斷語句Hash2[hashl[110]] [108]進行判斷,得到大區(qū)號110的HASH值為1,Hash2[l]
[108]項為1,有效,前六位字符"110108"是一個有效的地址碼。然后對"19621230"進 行是否為一有效的出生日期碼的判斷,最后采用IS07064 :1983.MODll-2校驗算法對 字符串"110108196212302873"最后一位字符"3"進行校驗。據(jù)此,可以判斷出字符串 "110108196212302873"是否為一個可能有效的身份證號碼。
[0062] 如圖2所示,本申請實施例的身份證號碼的識別裝置主要包括識別模塊210、驗證 模塊220及執(zhí)行模塊230。
[0063] 識別模塊210,配置為從字符流中識別出可能為身份證號碼的字符串;
[0064] 驗證模塊220,與識別模塊210相連,配置為采用身份證號碼編碼規(guī)則對所述可能 為身份證號碼的字符串進行驗證;
[0065] 執(zhí)行模塊230,與驗證模塊220相連,配置為將通過驗證的所述可能為身份證號碼 的字符串作為可能有效的身份證號碼。
[0066] 如圖2所示,上述識別模塊210包括識別單元211及判斷單元212。
[0067] 識別單元211,配置為采用能夠?qū)τ行?shù)字、可忽略字符、非法字符以及可能的結 束符進行區(qū)分的哈希表對所述字符流進行字符識別;
[0068] 判斷單元212,與識別單元211及驗證模塊220相連,配置為將十八位數(shù)字組成的 字符串或者十七位數(shù)字以及一位X或X的字符串識別為所述可能為身份證號碼的字符串。
[0069] 如圖2所示,上述驗證模塊220包括第一驗證單元221、第二驗證單元222以及第 三驗證單元223。
[0070] 第一驗證單元221,與執(zhí)行模塊230及識別模塊210中的判斷單元212相連,配置 為采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進行身份證號碼的地址碼 的驗證;
[0071] 第二驗證單元222,與執(zhí)行模塊230及識別模塊210中的判斷單元212相連,配置 為采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進行身份證號碼的出生日 期碼的驗證;
[0072] 第三驗證單元223,與執(zhí)行模塊230及識別模塊210中的判斷單元212相連,配置 為采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進行身份證號碼的校驗碼 的驗證。
[0073] 上述第一驗證單元221配置為利用二維數(shù)組對所述可能為身份證號碼的字符串 中的前六位字符進行所述地址碼的驗證。
[0074] 上述第一驗證單元221配置為利用所述二維數(shù)組的第一維對所述可能為身份證 號碼的字符串中的前三位字符進行所述地址碼的大行政區(qū)號碼的驗證,利用所述二維數(shù)組 的第二維對所述可能為身份證號碼的字符串中的第四至六位字符進行所述地址碼的區(qū)內(nèi) 號碼的驗證。所述二維數(shù)組第一維的長度大于等于三位數(shù)字所表示的有效的大行政區(qū)號碼 的數(shù)量,第二維的長度大于等于所有有效的大行政區(qū)號碼內(nèi)三位數(shù)字所表示的區(qū)內(nèi)號碼的 數(shù)量。
[0075] 本領域的技術人員應該明白,上述的本申請實施例所提供的裝置的各組成部分, 以及方法中的各步驟,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組 成的網(wǎng)絡上??蛇x地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn)。從而,可以將它們存 儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它 們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定 的硬件和軟件結合。
[0076] 雖然本發(fā)明所揭露的實施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的 實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領域內(nèi)的技術人員,在不脫離本發(fā)明所揭 露的精神和范圍的前提下,可以在實施的形式及細節(jié)上進行任何的修改與變化,但本發(fā)明 的專利保護范圍,仍須以所附的權利要求書所界定的范圍為準。
【權利要求】
1. 一種身份證號碼的識別方法,包括: 從字符流中識別出可能為身份證號碼的字符串; 采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進行驗證; 將通過驗證的所述可能為身份證號碼的字符串作為可能有效的身份證號碼。
2. 根據(jù)權利要求1所述的方法,其中,從字符流中識別出可能為身份證號碼的字符串, 包括: 采用能夠?qū)τ行?shù)字、可忽略字符、非法字符以及可能的結束符進行區(qū)分的哈希表對 所述字符流進行字符識別; 將十八位數(shù)字組成的字符串或者十七位數(shù)字以及一位X或X的字符串識別為所述可能 為身份證號碼的字符串。
3. 根據(jù)權利要求1所述的方法,其中,采用身份證號碼編碼規(guī)則對所述可能為身份證 號碼的字符串進行驗證,包括: 采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進行身份證號碼的地址 碼、出生日期碼以及校驗碼的驗證。
4. 根據(jù)權利要求3所述的方法,其中,采用身份證號碼編碼規(guī)則對所述可能為身份證 號碼的字符串進行身份證號碼的地址碼的驗證,包括: 利用二維數(shù)組對所述可能為身份證號碼的字符串中的前六位字符進行所述地址碼的 驗證。
5. 根據(jù)權利要求4所述的方法,其中: 利用所述二維數(shù)組的第一維對所述可能為身份證號碼的字符串中的前三位字符進行 所述地址碼的大行政區(qū)號碼的驗證,利用所述二維數(shù)組的第二維對所述可能為身份證號碼 的字符串中的第四至六位字符進行所述地址碼的區(qū)內(nèi)號碼的驗證; 其中,所述二維數(shù)組第一維的長度大于等于三位數(shù)字所表示的有效的大行政區(qū)號碼的 數(shù)量,第二維的長度大于等于所有有效的大行政區(qū)號碼內(nèi)三位數(shù)字所表示的區(qū)內(nèi)號碼的數(shù) 量。
6. -種身份證號碼的識別裝置,包括: 識別模塊,配置為從字符流中識別出可能為身份證號碼的字符串; 驗證模塊,配置為采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進行驗 證; 執(zhí)行模塊,配置為將通過驗證的所述可能為身份證號碼的字符串作為可能有效的身份 證號碼。
7. 根據(jù)權利要求6所述的裝置,其中,所述識別模塊包括: 識別單元,配置為采用能夠?qū)τ行?shù)字、可忽略字符、非法字符以及可能的結束符進行 區(qū)分的哈希表對所述字符流進行字符識別; 判斷單元,配置為將十八位數(shù)字組成的字符串或者十七位數(shù)字以及一位X或X的字符 串識別為所述可能為身份證號碼的字符串。
8. 根據(jù)權利要求6所述的裝置,其中,所述驗證模塊包括: 第一驗證單元,配置為采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進 行身份證號碼的地址碼的驗證; 第二驗證單元,配置為采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進 行身份證號碼的出生日期碼的驗證; 第三驗證單元,配置為采用身份證號碼編碼規(guī)則對所述可能為身份證號碼的字符串進 行身份證號碼的校驗碼的驗證。
9. 根據(jù)權利要求8所述的裝置,其中: 所述第一驗證單元配置為利用二維數(shù)組對所述可能為身份證號碼的字符串中的前六 位字符進行所述地址碼的驗證。
10. 根據(jù)權利要求9所述的裝置,其中: 所述第一驗證單元配置為利用所述二維數(shù)組的第一維對所述可能為身份證號碼的字 符串中的前三位字符進行所述地址碼的大行政區(qū)號碼的驗證,利用所述二維數(shù)組的第二維 對所述可能為身份證號碼的字符串中的第四至六位字符進行所述地址碼的區(qū)內(nèi)號碼的驗 證; 其中,所述二維數(shù)組第一維的長度大于等于三位數(shù)字所表示的有效的大行政區(qū)號碼的 數(shù)量,第二維的長度大于等于所有有效的大行政區(qū)號碼內(nèi)三位數(shù)字所表示的區(qū)內(nèi)號碼的數(shù) 量。
【文檔編號】G06F17/30GK104111932SQ201310134135
【公開日】2014年10月22日 申請日期:2013年4月17日 優(yōu)先權日:2013年4月17日
【發(fā)明者】許金鵬, 王洋, 李健安, 薛萍 申請人:北京啟明星辰信息技術股份有限公司, 北京啟明星辰信息安全技術有限公司