本發(fā)明涉及教育信息化安全認(rèn)證技術(shù),具體涉及一種基于身份信息的EEID標(biāo)識(教育電子身份號)生成方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)空間已經(jīng)成為現(xiàn)實(shí)社會的一部分,網(wǎng)絡(luò)活動(dòng)成為人類社會生活的重要延伸。在大數(shù)據(jù)時(shí)代,互聯(lián)網(wǎng)在給用戶生活帶來便利的同時(shí),用戶越來越多的個(gè)人數(shù)據(jù)不斷地融入互聯(lián)網(wǎng)中,由此也帶來了各種信息安全和隱私保護(hù)問題的挑戰(zhàn)。
教育行業(yè)信息化的迅速發(fā)展,用戶數(shù)量急劇增大,用戶的高度集中,將導(dǎo)致較大的數(shù)據(jù)安全和隱私保護(hù)風(fēng)險(xiǎn)。目前,網(wǎng)絡(luò)實(shí)名制仍然是互聯(lián)網(wǎng)用戶管理的一個(gè)重點(diǎn)難點(diǎn)問題,對于海量用戶的管理,實(shí)行實(shí)名制尤其重要。針對網(wǎng)絡(luò)實(shí)名制的問題,利用EEID標(biāo)識(教育電子身份號)替代身份證號,解決各類云平臺用戶統(tǒng)一管理問題,既保護(hù)用戶隱私安全,又能進(jìn)行實(shí)名制管理。但是,生成EEID標(biāo)識時(shí),如何保證EEID的唯一性并保護(hù)用戶的個(gè)人信息隱私,已經(jīng)成為一項(xiàng)亟待解決的關(guān)鍵技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題:針對現(xiàn)有技術(shù)的上述問題,提供一種能夠保證EEID的唯一性,并保護(hù)用戶的個(gè)人信息隱私,唯一性好、隱私性高、安全可靠性好的基于身份信息的EEID標(biāo)識生成方法。
為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
一種基于身份信息的EEID標(biāo)識生成方法,步驟包括:
1)確定目標(biāo)用戶的省份代碼P,所述省份代碼P包括機(jī)構(gòu)、外籍、居民三類;
2)根據(jù)目標(biāo)用戶的省份代碼P類型生成段碼T,如果省份代碼P為機(jī)構(gòu)或外籍,則生成固定內(nèi)容的段碼T;如果省份代碼P為居民,則基于身份證號中的出生年月日采用散列算法生成段碼T;
3)針對目標(biāo)用戶生成隨機(jī)碼R,且所述隨機(jī)碼R在同一段碼T內(nèi)唯一不重復(fù);
4)將省份代碼P、隨機(jī)碼R、段碼T拼接得到EEID標(biāo)識。
優(yōu)選地,步驟2)基于身份證號中的出生年月日采用散列算法生成段碼T的詳細(xì)步驟包括:
2.1)根據(jù)式(1)計(jì)算段碼初始原型值TInitial;
TInitial=(yy%yfa)*yfb+(mm~mfa)*mfb+dd (1)
式(1)中,TInitial表示段碼初始原型值,yy表示出生年月日中的出生年份,yfa表示年份因子a,yfb表示年份因子b,mm表示出生年月日中的月份,mfa表示月份因子a,mfb表示月份因子b,dd表示出生年月日中的日期;
2.2)根據(jù)式(2)將段碼初始原型值TInitial對段碼因子Tfa求余,判斷余數(shù)K是否為0,如果余數(shù)K為0,則跳轉(zhuǎn)執(zhí)行步驟2.3);否則,跳轉(zhuǎn)執(zhí)行步驟2.4);
K=TInitial%Tfa (2)
式(2)中,K表示余數(shù),TInitial表示段碼初始原型值,Tfa表示段碼因子a;
2.3)根據(jù)式(3)利用段碼因子Tfa和年份因子yfa和日因子df對段碼初始原型值TInitial進(jìn)行二次計(jì)算;
TInitial=(TInitial/Tfa)*yfa+df (3)
式(3)中,TInitial表示段碼初始原型值,Tfa表示段碼因子a,yfa表示年份因子a,df表示日因子;
2.4)根據(jù)式(4)計(jì)算段碼結(jié)果原型TFinal;
TFinal=TInitial+Tfb (4)
式(4)中,TFinal表示段碼結(jié)果原型,TInitial表示段碼初始原型值,Tfb表示段碼因子b;
2.5)從段碼結(jié)果原型TFinal中截取指定位作為段碼T的最終值。
優(yōu)選地,所述年份因子a的值為27、年份因子b的值為361、月份因子a的值為1、月份因子b的值為0,段碼因子a的值為1111,段碼因子b的值為10000,日因子df的值為60。
優(yōu)選地,步驟2.5)中段碼T的最終值為4位。
優(yōu)選地,步驟2.5)中從段碼結(jié)果原型TFinal中截取指定位時(shí),具體是指截取第2~5位。
優(yōu)選地,步驟2.1)之前還包括對身份證號進(jìn)行校驗(yàn)的步驟,如果校驗(yàn)通過則執(zhí)行步驟2.1),如果校驗(yàn)失敗,則輸出錯(cuò)誤信息并退出。
優(yōu)選地,步驟2)中生成固定內(nèi)容的段碼T的詳細(xì)步驟包括:如果省份代碼P為機(jī)構(gòu),則生成固定內(nèi)容為0000的段碼T,如果省份代碼P為外籍,則生成固定內(nèi)容為9999的段碼T。
優(yōu)選地,步驟3)針對目標(biāo)用戶生成隨機(jī)碼R的詳細(xì)步驟包括:
3.1)利用隨機(jī)數(shù)函數(shù)獲取1~999999內(nèi)的隨機(jī)碼初始原型RInital;
3.2)利用段碼T和隨機(jī)碼R查詢有效EEID標(biāo)識庫和失效EEID標(biāo)識庫,驗(yàn)證隨機(jī)碼初始原型RInital是否被占用,如果隨機(jī)碼初始原型RInital已被占用,則跳轉(zhuǎn)執(zhí)行步驟3.1);否則,將隨機(jī)碼初始原型RInital賦值給隨機(jī)碼結(jié)果原型RFinal;
3.3)將隨機(jī)碼結(jié)果原型RFinal返回作為針對目標(biāo)用戶生成的隨機(jī)碼R。
優(yōu)選地,步驟4)將省份代碼P、隨機(jī)碼R、段碼T拼接得到EEID標(biāo)識具體是指將將2位的省份代碼P作為12位EEID標(biāo)識的第1~2位,將6位的隨機(jī)碼R作為12位EEID標(biāo)識的第3~8位,將4位的段碼T作為12位EEID標(biāo)識的第9~12位,如果隨機(jī)碼R不足6位則用0補(bǔ)足6位,從而拼接得到基于身份信息的12位長度的EEID標(biāo)識。
本發(fā)明基于身份信息的EEID標(biāo)識生成方法具有下述優(yōu)點(diǎn):本發(fā)明確定目標(biāo)用戶的省份代碼P,所述省份代碼P包括機(jī)構(gòu)、外籍、居民三類,根據(jù)目標(biāo)用戶的省份代碼P類型生成段碼T,如果省份代碼P為機(jī)構(gòu)或外籍,則生成固定內(nèi)容的段碼T;如果省份代碼P為居民,則基于身份證號中的出生年月日采用散列算法生成段碼T;針對目標(biāo)用戶生成隨機(jī)碼R,且所述隨機(jī)碼R在同一段碼T內(nèi)唯一不重復(fù),將省份代碼P、隨機(jī)碼R、段碼T拼接得到EEID標(biāo)識,其中針對居民采用散列算法生成段碼T,從而能夠保證EEID的唯一性,并保護(hù)用戶的個(gè)人信息隱私,具有唯一性好、隱私性高、安全可靠性好的優(yōu)點(diǎn)。
附圖說明
圖1為本發(fā)明實(shí)施例一方法的基本流程示意圖。
圖2為本發(fā)明實(shí)施例一方法步驟2)的基本流程示意圖。
圖3為本發(fā)明實(shí)施例一方法步驟3)的基本流程示意圖。
圖4為本發(fā)明實(shí)施例一的EEID標(biāo)識的位結(jié)構(gòu)示意圖。
圖5為本發(fā)明實(shí)施例二的EEID標(biāo)識的位結(jié)構(gòu)示意圖。
圖6為本發(fā)明實(shí)施例三的EEID標(biāo)識的位結(jié)構(gòu)示意圖。
具體實(shí)施方式
實(shí)施例一:
如圖1所示,本發(fā)明實(shí)施例基于身份信息的EEID標(biāo)識生成方法的步驟包括:
1)確定目標(biāo)用戶的省份代碼P,所述省份代碼P包括機(jī)構(gòu)、外籍、居民三類;
2)根據(jù)目標(biāo)用戶的省份代碼P類型生成段碼T,如果省份代碼P為機(jī)構(gòu)或外籍,則生成固定內(nèi)容的段碼T;如果省份代碼P為居民,則基于身份證號中的出生年月日采用散列算法生成段碼T;
3)針對目標(biāo)用戶生成隨機(jī)碼R,且所述隨機(jī)碼R在同一段碼T內(nèi)唯一不重復(fù);
4)將省份代碼P、隨機(jī)碼R、段碼T拼接得到EEID標(biāo)識。
本實(shí)施例中,基于身份證號中的出生年月日生成段碼T具體是指根據(jù)身份證號的出生日期、采用散列算法生成段碼T,從而能夠保證EEID的唯一性,并保護(hù)用戶的個(gè)人信息隱私。如圖2所示,步驟2)基于身份證號中的出生年月日采用散列算法生成段碼T的詳細(xì)步驟包括:
2.1)根據(jù)式(1)計(jì)算段碼初始原型值TInitial;
TInitial=(yy%yfa)*yfb+(mm~mfa)*mfb+dd (1)
式(1)中,TInitial表示段碼初始原型值,yy表示出生年月日中的出生年份,yfa表示年份因子a,yfb表示年份因子b,mm表示出生年月日中的月份,mfa表示月份因子a,mfb表示月份因子b,dd表示出生年月日中的日期;
2.2)根據(jù)式(2)將段碼初始原型值TInitial對段碼因子Tfa求余,判斷余數(shù)K是否為0,如果余數(shù)K為0,則跳轉(zhuǎn)執(zhí)行步驟2.3);否則,跳轉(zhuǎn)執(zhí)行步驟2.4);
K=TInitial%Tfa (2)
式(2)中,K表示余數(shù),TInitial表示段碼初始原型值,Tfa表示段碼因子a;
2.3)根據(jù)式(3)利用段碼因子Tfa和年份因子yfa和日因子df對段碼初始原型值TInitial進(jìn)行二次計(jì)算;
TInitial=(TInitial/Tfa)*yfa+df (3)
式(3)中,TInitial表示段碼初始原型值,Tfa表示段碼因子a,yfa表示年份因子a,df表示日因子;
2.4)根據(jù)式(4)計(jì)算段碼結(jié)果原型TFinal;
TFinal=TInitial+Tfb (4)
式(4)中,TFinal表示段碼結(jié)果原型,TInitial表示段碼初始原型值,Tfb表示段碼因子b;本步驟得到一個(gè)5位的數(shù)值型段碼結(jié)果原型TFinal;
2.5)從段碼結(jié)果原型TFinal中截取指定位作為段碼T的最終值。
本實(shí)施例中,年份因子a的值為27、年份因子b的值為361、月份因子a的值為1、月份因子b的值為0,段碼因子a的值為1111,段碼因子b的值為10000,日因子df的值為60,以上所有參數(shù)均為數(shù)值型。通過上述因子的數(shù)值設(shè)定,能夠?qū)⑸矸葑C號中的出生年月日均勻映射段碼T的取值區(qū)間內(nèi)。
本實(shí)施例中,步驟2.5)中段碼T的最終值為4位。本實(shí)施例中,步驟2.5)中從段碼結(jié)果原型TFinal中截取指定位時(shí),具體是指截取第2~5位。
本實(shí)施例中,步驟2.1)之前還包括對身份證號進(jìn)行校驗(yàn)的步驟,如果校驗(yàn)通過則執(zhí)行步驟2.1),如果校驗(yàn)失敗,則輸出錯(cuò)誤信息并退出。
本實(shí)施例中,步驟2)中生成固定內(nèi)容的段碼T的詳細(xì)步驟包括:如果省份代碼P為機(jī)構(gòu),則生成固定內(nèi)容為0000的段碼T,如果省份代碼P為外籍,則生成固定內(nèi)容為9999的段碼T。
如圖3所示,步驟3)針對目標(biāo)用戶生成隨機(jī)碼R的詳細(xì)步驟包括:
3.1)利用隨機(jī)數(shù)函數(shù)獲取1~999999內(nèi)的隨機(jī)碼初始原型RInital;
3.2)利用段碼T和隨機(jī)碼R查詢有效EEID標(biāo)識庫和失效EEID標(biāo)識庫,驗(yàn)證隨機(jī)碼初始原型RInital是否被占用,如果隨機(jī)碼初始原型RInital已被占用,則跳轉(zhuǎn)執(zhí)行步驟3.1);否則,將隨機(jī)碼初始原型RInital賦值給隨機(jī)碼結(jié)果原型RFinal;
3.3)將隨機(jī)碼結(jié)果原型RFinal返回作為針對目標(biāo)用戶生成的隨機(jī)碼R。
參見圖4,本實(shí)施例中,步驟4)將省份代碼P、隨機(jī)碼R、段碼T拼接得到EEID標(biāo)識具體是指將將2位的省份代碼P作為12位EEID標(biāo)識的第1~2位,將6位的隨機(jī)碼R作為12位EEID標(biāo)識的第3~8位,將4位的段碼T作為12位EEID標(biāo)識的第9~12位,如果隨機(jī)碼R不足6位則用0補(bǔ)足6位(例如:1237補(bǔ)足后為001237),從而拼接得到基于身份信息的12位長度的EEID標(biāo)識。參見圖4可知,本實(shí)施例中生成的EEID標(biāo)識是一組12位數(shù)字編碼組成,分為居民EEID、機(jī)構(gòu)EEID和外籍EEID三類。1-2位為省份代碼P,并可以區(qū)別外籍EEID和居民EEID、機(jī)構(gòu)EEID。3-8位為隨機(jī)碼R,并且在同一個(gè)段碼內(nèi)不會出現(xiàn)重復(fù),在任意的一個(gè)段碼內(nèi)均為為唯一隨機(jī)碼。9-12位為段碼T,居民EEID段碼通過居民身份證中標(biāo)示的出生年月日通過算法生成,機(jī)構(gòu)EEID和外籍EEID的段碼為固定段碼,且不會與居民EEID的段碼重復(fù)。
如圖4所示,本實(shí)施例中,省份代碼P采用省份標(biāo)識,例如湖南省為43,隨機(jī)碼R為002342,段碼T為1213,將省份代碼P、隨機(jī)碼R、段碼T拼接得到該機(jī)構(gòu)的EEID標(biāo)識為:430023421213。利用居民身份證號碼申請EEID標(biāo)識時(shí),系統(tǒng)會對身份證號碼的正確性做校驗(yàn),錯(cuò)誤的身份證號碼將不能通過校驗(yàn)、不能夠生成EEID標(biāo)識。
實(shí)施例二:
本實(shí)施例與實(shí)施例一的方法基本相同,其主要不同點(diǎn)為目標(biāo)用戶不同,本實(shí)施例中目標(biāo)用戶為機(jī)構(gòu)。EEID有相關(guān)機(jī)構(gòu)利用機(jī)構(gòu)的合法的10位機(jī)構(gòu)代碼,進(jìn)行申請,并將10位機(jī)構(gòu)代碼按照相應(yīng)規(guī)則補(bǔ)足18位,得到機(jī)構(gòu)ID,補(bǔ)足規(guī)則如下:
1~3位:補(bǔ)足0,即前三位為:000;
4~5位:補(bǔ)足省份代碼,例如湖南省補(bǔ)足為43;
6~14位:正確的10位機(jī)構(gòu)代碼去掉第9位的-組成;15~18位:4位數(shù)字,可隨機(jī),可按照申請個(gè)數(shù)補(bǔ)足,例如初次申請10個(gè),則補(bǔ)足0001~0010,后續(xù)申請,可繼續(xù)在此基礎(chǔ)上增加。
例如:機(jī)構(gòu)代碼為:44346789-X,補(bǔ)足后的機(jī)構(gòu)ID為:0004344346789X0001;
機(jī)構(gòu)在申請EEID標(biāo)識時(shí),EEID系統(tǒng)會對補(bǔ)足后的機(jī)構(gòu)ID中的6-14位(去-以后的機(jī)構(gòu)代碼)進(jìn)行有效性校驗(yàn),即不合法的機(jī)構(gòu)代碼補(bǔ)足的機(jī)構(gòu)ID中的6-14位,將不能通過校驗(yàn),不可以生成機(jī)構(gòu)的EEID標(biāo)識。
如圖5所示,本實(shí)施例中,省份代碼P采用省份標(biāo)識,例如湖南省為43,隨機(jī)碼R為001268,段碼T為0000,將省份代碼P、隨機(jī)碼R、段碼T拼接得到該機(jī)構(gòu)的EEID標(biāo)識為:430012680000。
實(shí)施例三:
本實(shí)施例與實(shí)施例一的方法基本相同,其主要不同點(diǎn)為目標(biāo)用戶不同,本實(shí)施例中目標(biāo)用戶為外籍人士。由于外籍人士的身份ID涉及到眾多國家,無法進(jìn)行校驗(yàn),故保留提交申請的外籍人士的身份ID,不做校驗(yàn),也不做補(bǔ)足等操作,省份代碼P為外籍,生成固定內(nèi)容為9999的段碼T,然后按照實(shí)施例一的方法生成外籍人士的EEID標(biāo)識并存儲。
如圖6所示,本實(shí)施例中,省份代碼P采用00標(biāo)識,隨機(jī)碼R為007864,段碼T為9999,將省份代碼P、隨機(jī)碼R、段碼T拼接得到該外籍人士的EEID標(biāo)識為:000078649999。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。