1.一種分級時(shí)效的動(dòng)態(tài)口令加密算法,其特征在于包括以下步驟:
S1、基于時(shí)間信息生成DSR字符串
S101、設(shè)置年代因子Y,其值在0和15之間,記為Y=[0,15],
S102、系統(tǒng)獲取當(dāng)前日期和時(shí)刻,提取當(dāng)前年yi、指定基準(zhǔn)年y0,每16年為一個(gè)步長,計(jì)算當(dāng)前年的年代指數(shù)y=(yi- y0-Y)%16,設(shè)置年代系數(shù)C,其值在0和255之間,C=(yi- y0-Y)/16,取整,
S103、計(jì)算該日期在全年中是第幾天,記為d1,計(jì)算該日期是一周中的第幾天,記為d2,取當(dāng)前小時(shí)時(shí)間,記為d3,取當(dāng)前分鐘值,記為d4,
S104、產(chǎn)生隨機(jī)數(shù)R,將隨機(jī)數(shù)R進(jìn)行6位長度字符串格式化運(yùn)算,記為r,
S105、選擇r、y和C,并與d1、 d2、d3或d4中一個(gè)或兩個(gè)以上按設(shè)定規(guī)則組合排列,并進(jìn)行3DES加密,生成字符串DSR;
S2、基于ASCII字符集生成字符串ESV
S201、從ASCII字符集中選取64個(gè)字符作為密碼集S1,記為,
S202、設(shè)置0-63亂序排列的轉(zhuǎn)換矩陣V,對密碼集S1進(jìn)行矩陣轉(zhuǎn)換,記為密碼集S2,
S203、從密碼集S1中取字符串序列轉(zhuǎn)換成密碼集S2中的字符生成字符串SV ,并按照設(shè)定的規(guī)則與步驟S102中當(dāng)前年的年代指數(shù)y值排序,然后進(jìn)行3DES加密,生成字符串ESV;
S3、將字符串DSR與字符串ESV進(jìn)行長度比較,不足者左側(cè)用0補(bǔ)齊后進(jìn)行異或運(yùn)算,將結(jié)果記為T,并將T按16進(jìn)制格式轉(zhuǎn)換成字符串作為動(dòng)態(tài)口令token,記為t。
2.根據(jù)權(quán)利要求1所述的分級時(shí)效的動(dòng)態(tài)口令加密算法,其特征在于步驟S102中以2000年為基準(zhǔn)年。
3.根據(jù)權(quán)利要求1所述的分級時(shí)效的動(dòng)態(tài)口令加密算法,其特征在于步驟S105中選取r、y、C、d1、d2、d3和d4按設(shè)定規(guī)則排列。
4.根據(jù)權(quán)利要求1所述的分級時(shí)效的動(dòng)態(tài)口令加密算法,其特征在于步驟S105中選取r、y、C、d1和d3 按設(shè)定規(guī)則排列。
5.根據(jù)權(quán)利要求1所述的所述的分級時(shí)效的動(dòng)態(tài)口令加密算法,其特征在于步驟S203中字符串SV按照設(shè)定的規(guī)則與步驟S102中當(dāng)前年的年代指數(shù)y值和年代因子C值排序。