專利名稱:時間信息的處理方法及動態(tài)令牌的制作方法
技術領域:
本發(fā)明涉及計算機技術領域,具體而言,涉及一種時間信息的處理方法及動態(tài)令 牌。
背景技術:
動態(tài)口令(Dynamic Password),又稱一次性口令(One TimePassword,簡稱為 OTP),是相對于傳統(tǒng)的靜態(tài)口令而說的。動態(tài)口令是變化的密碼,其變化來源于產生密碼的 運算因子是變化的。動態(tài)口令的生成算法一般都采用雙運算因子,一是用戶身份的識別碼, 是固定不變的,如用戶的私有密鑰;二是變動因子,如時間、隨機數(shù)、計數(shù)器值等。動態(tài)口令技術采用一種叫做動態(tài)令牌的專用設備,內置電源、密碼生成芯片和顯 示屏,密碼生成芯片運行專門的密碼算法,根據(jù)當前時間或使用次數(shù)生成當前密碼并顯示 在顯示屏上基于時間同步的動態(tài)令牌在一個時間間隔內(通常為60秒或30秒)生成一個動 態(tài)口令。OTP的動態(tài)因子是以1970年1月1日0點0分0秒為原點,每過一個標準單位,時 間動態(tài)因子加一,OTP采用硬件時鐘芯片的話,時間數(shù)據(jù)包括年、月、日、時、分、秒,必須先化 為標準秒才可以進一步計算,而有些微控制單元(MicroControl Unit,簡稱為MCU),內部是 沒有乘法器的,做乘法操作就必須采用加法來實現(xiàn),耗費時間。針對相關技術中對時間信息的處理效率比較低的問題,目前尚未提出有效的解決方案。
發(fā)明內容
針對相關技術中對時間信息的處理效率比較低的問題而提出本發(fā)明,為此,本發(fā) 明的主要目的在于提供一種時間信息的處理方法及動態(tài)令牌,以解決上述問題。為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種時間信息的處理方法。根據(jù)本發(fā)明的時間信息的處理方法包括觸發(fā)動態(tài)令牌,動態(tài)令牌提取時間值和 動態(tài)因子的變化時間步長;動態(tài)令牌分別讀取時間值中的年份、月份;動態(tài)令牌根據(jù)時間 值中的年份、月份查找時間表,分別得到時間值中的年份、月份與基準時間中年份、月份的 差值,其中,時間表中存儲有各時間值與基準時間值的差值信息;動態(tài)令牌分別讀取時間值 中的日期、小時數(shù);動態(tài)令牌分別計算時間值中的日期、小時數(shù)和基準時間中的日期、小時 數(shù)的差值;動態(tài)令牌計算時間值與基準時間的差值;動態(tài)令牌根據(jù)時間值與基準時間的差 值以及動態(tài)因子的變化時間步長得到動態(tài)因子;動態(tài)令牌根據(jù)動態(tài)因子生成并顯示動態(tài)口 令。優(yōu)選地,上述時間表包括年表、月表、日表、時表;其中,年表和月表分別存儲有 時間值中年份、月份與基準時間中相應時間信息的差值;日表存儲有一天時間對應的分鐘 數(shù);時表存儲有一小時時間對應的分鐘數(shù)。 優(yōu)選地,上述月表還包括平年月表,存儲平年年份中每月距離當前年份一月的分鐘數(shù);閏年月表,存儲閏年年份中每月距離當前年份一月的分鐘數(shù)。優(yōu)選地,在動態(tài)令牌分別讀取時間值中的年份、月份之后,該方法還包括判斷時 間值中的年份是否是閏年;在判斷結果為是的情況下,判斷時間值中的月份是否超過二月 份;在時間值中的月份超過二月份的情況下,將時間值中的日期加一。優(yōu)選地,動態(tài)令牌分別計算時間值中的日期、小時數(shù)和基準時間中的日期、小時數(shù) 的差值包括查找日表、時表;根據(jù)日表、時表中的數(shù)據(jù)及時間值中的日期、小時數(shù)計算時 間值中的日期、小時數(shù)與基準時間值中的日期、小時數(shù)的差值。優(yōu)選地,動態(tài)令牌計算時間值與基準時間的差值包括動態(tài)令牌讀取時間值中的 分鐘數(shù);動態(tài)令牌將查找時間表所得的數(shù)據(jù)、計算所得的數(shù)據(jù)、讀取的分鐘數(shù)相加得到時間 值與基準時間的差值。優(yōu)選地,動態(tài)令牌根據(jù)時間值與基準時間的差值以及動態(tài)因子的變化時間步長得 到動態(tài)因子包括在動態(tài)因子的變化時間步長為第一預設值的情況下,動態(tài)因子為時間值 與基準時間值的差值;在動態(tài)因子的變化時間步長為第二預設值的情況下,動態(tài)令牌讀取 時間值中的秒數(shù),并判斷讀取的描述是否發(fā)于第二預設值,如果大于,動態(tài)因子按照第一預 設方式進行計算;如果小 于,動態(tài)因子按照第二預設方式進行計算。優(yōu)選地,第一預設方式為時間值與基準時間值的差值的二倍再加一;第二預設 公式為時間值與基準時間值的差值的二倍。為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種動態(tài)令牌。根據(jù)本發(fā)明的動態(tài)令牌包括讀取模塊,用于分別讀取時間值中的年份、月份、日 期、小時數(shù);查找模塊,用于根據(jù)時間值中的年份、月份查找時間表,分別得到時間值中的年 份、月份與基準時間中年份、月份的差值,其中,時間表中存儲有各時間值與基準時間值的 差值信息;計算模塊,用于分別計算時間值中的日期、小時數(shù)和基準時間中的日期、小時數(shù) 的差值;動態(tài)因子計算模塊,用于根據(jù)時間值和基準時間的差值以及動態(tài)因子的變化時間 步長得到動態(tài)因子;生成顯示模塊,用于根據(jù)動態(tài)因子生成并顯示動態(tài)口令。優(yōu)選地,上述動態(tài)令牌還包括判斷模塊,用于判斷時間值中的年份是否是閏年以 及在判斷結果為是的情況下,判斷時間值中的月份是否超過二月份。通過本發(fā)明,采用動態(tài)令牌分別讀取時間值中的年份、月份;動態(tài)令牌根據(jù)時間值 中的年份、月份查找時間表,分別得到時間值中的年份、月份與基準時間中年份、月份的差 值;動態(tài)令牌分別讀取時間值中的日期、小時數(shù)并分別計算時間值中的日期、小時數(shù)和基準 時間中的日期、小時數(shù)的差值;動態(tài)令牌計算時間值與基準時間的差值;動態(tài)令牌根據(jù)時 間值與基準時間的差值以及動態(tài)因子的變化時間步長得到動態(tài)因子并根據(jù)動態(tài)因子生成 并顯示動態(tài)口令,解決了相關技術中對時間信息的處理效率比較低的問題,進而達到了提 高對時間數(shù)據(jù)處理效率的效果。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中圖1是根據(jù)本發(fā)明實施例的時間信息的處理方法的流程圖;圖2是根據(jù)本發(fā)明實施例優(yōu)選的時間信息的處理方法的流程圖3是根據(jù)本發(fā)明實施例的動態(tài)令牌的示意圖;圖4是根據(jù)本發(fā)明實施例優(yōu)選的動態(tài)令牌的示意圖。
具體實施例方式需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相 互組合。下面將參考附圖并結合實施例來詳細說明本發(fā)明。根據(jù)本發(fā)明的實施例,提供了 一種時間信息的處理方法。圖1是根據(jù)本發(fā)明實施例的時間信息的處理方法的流程圖。如圖1所示,該方法包括如下的步驟S102至步驟Sl18 步驟S102,觸發(fā)動態(tài)令牌,動態(tài)令牌提取時間值和動態(tài)因子的變化時間步長;步驟S104,動態(tài)令牌分別讀取時間值中的年份、月份;步驟S106,動態(tài)令牌根據(jù)時間值中的年份、月份查找時間表,分別得到時間值中的 年份、月份與基準時間中年份、月份的差值,其中,時間表中存儲有各時間值與基準時間值 的差值信息;步驟S108,動態(tài)令牌分別讀取時間值中的日期、小時數(shù);步驟S110,動態(tài)令牌分別計算時間值中的日期、小時數(shù)和基準時間中的日期、小時數(shù)的差值;步驟S112,動態(tài)令牌計算時間值與基準時間的差值;步驟S114,動態(tài)令牌根據(jù)時間值與基準時間的差值以及動態(tài)因子的變化時間步長得到動態(tài)因子;步驟S116,動態(tài)令牌根據(jù)動態(tài)因子生成并顯示動態(tài)口令。優(yōu)選地,時間表包括以下表格中至少之一年表、月表、日表、時表、分表、和秒表, 其中,年表、月表、日表、時表、分表和秒表中分別存儲有時間表中年份、月份、日期、分鐘和 秒數(shù)與基準時間中相應時間信息的差值。優(yōu)選地,月表包括平年月表,存儲平年年份中每月距離當前年份一月的分鐘數(shù);閏年月表,存儲閏年年份中每月距離當前年份一月的分鐘數(shù)。優(yōu)選地,日表中存儲有前月各日期距離前月一日的分鐘數(shù)。優(yōu)選地,根據(jù)動態(tài)因子生成并顯示動態(tài)口令包括根據(jù)動態(tài)因子和預存的靜態(tài)因 子來生成并顯示動態(tài)口令。下面將結合實例對本發(fā)明實施例的實現(xiàn)過程進行詳細描述。在進行具體說明之前,對相應情況描述如下,OTP內部存儲有時間表,表中的時間 是以分鐘為單位進行存儲的,且以1970年1月1日0時0分0秒為基準計時時間。其中,時間表又細分為年表、月表、日表、時表,年表存儲有自1970年以來的每一 年1月1日0時0分0秒距離基準計時時間已過去的分鐘數(shù);月表存儲有當前年每月1日 0時0分0秒距離當前年1月1日0時0分0秒已過去的分鐘數(shù);日表存儲每天對應的分 鐘數(shù);時表存儲每小時對應的分鐘數(shù)。優(yōu)選地,年表中2009年距離基準計時時間已過去的分鐘數(shù)的計算方法包括當前 年是2009年1月1日0時0分0秒,距離1970年1月1日0時0分0秒已經過了 39年,在這 期間閏年有10個,平年有29個,每一平年有365天*24小時*60分,合計為525600分,每一個閏年有366天*24小時*60分,合計為527040分,那么2009-01-01 00:00:00已經過去了 525600*29+527040*10,合計 7384608000 分,年表中 2009 年對應的數(shù)據(jù)就是 7384608000。優(yōu)選地,月表中2009年3月距離2009年1月已過去的分鐘數(shù)的計算方法包括當 前是2009年3月1日0時0分0秒,距離2009年1月1日0時0分0秒已經過去了兩個月 的時間,在具體計算時間時,需要判斷2009年是否是閏年,如果是閏年,則2月份是29天, 如果是平年,則2月是28天,則2009年3月1日0時0分0秒距離2009年1月1日0時 0分0秒的時間為28天*24小時*60分+31天*24小時*60分,合計為84960分,2009年 對應的月表中,3月對應的數(shù)據(jù)是84960。時間表中的其他數(shù)據(jù)均是按照上述方法得到的。圖2是根據(jù)本發(fā)明實施例優(yōu)選的時間信息的處理方法的流程圖?;跁r間同步認證技術是把時間作為動態(tài)因子,采用一定的口令生成算法對當前時間因子和靜態(tài)因子進行計算,動態(tài)因子一般以60秒或30秒作為變化單位。在每個動態(tài)令 牌出廠時,就已經設定好了該令牌的動態(tài)因子的計算起始時間和動態(tài)因子的變化時間。例 如出廠時設定動態(tài)因子的計算起始時間為1970年1月1日0時0分0秒,動態(tài)因子的變 化步長為60秒。如圖2所示,該方法包括如下步驟步驟S201,觸發(fā)動態(tài)令牌,令牌提取第一時間值和動態(tài)因子的變化時間步長。優(yōu)選地,第一時間值為生成動態(tài)口令時的時間值,如2009年11月25日14時52 分33秒;動態(tài)因子的變化時間步長是指動態(tài)因子的變化周期,如60秒或30秒,具體是指動 態(tài)因子每隔60秒或30秒變化一次。步驟S202,令牌內固件程序讀取第一時間值中的年份,并根據(jù)年份查找時間表,得 到數(shù)據(jù)D_seedl。優(yōu)選地,令牌提取第一時間值中的年份,例如2009,令牌內固件程序根據(jù)提取的年 份查找時間表中的年表,得到2009年1月1日0時0分0秒距離1970年1月1日0時0 分0秒已過去的分鐘數(shù)7384608000,即D_seedl為7384608000。步驟S203,令牌內固件程序讀取第一時間值中的月份,并根據(jù)月份查找時間表,得 到數(shù)據(jù)D_seed2。優(yōu)選地,令牌提取第一時間值中的月份,例如11月,令牌內固件程序根據(jù)提取的 月份查找時間表中的月表,得到2009年11月1日0時0分0秒距離2009年1月1日0時 0分0秒已過去的分鐘數(shù)是354240,即D_seed2為354240。步驟S204,令牌內固件程序讀取第一時間值中的日期,并判斷第一時間值中的年 份是否是閏年,如果是閏年則轉入步驟S205,否則,轉入步驟S207。步驟S205,令牌內固件程序判斷第一時間值中的月份是否已經過了二月份,如果 是轉入步驟S206,否則,轉入步驟S207。步驟S206,令牌將讀取的第一時間值中的日期值加上一,得到新的日期值。步驟S207,令牌其他程序模塊根據(jù)第一時間值中的日期或計算得到的新的日期, 并根據(jù)時間表計算得到數(shù)據(jù)D_Seed3。優(yōu)選地,令牌提取第一時間值中的日期,例如25日,令牌根據(jù)提取的日期計算 2009年11月25日0時0分0秒距離2009年11月1日0時0分0秒已過去的分鐘數(shù),D_ seed3 = 25*1440 = 36000,其中,1440是令牌內固件程序查找時間表中的日表而得到的。
優(yōu)選地,當令牌讀取第一時間值得到的年份是閏年時,令牌在計算當前時間距離 基準計時時間已過去的分鐘數(shù)時,對于過了二月份的時間需要在當前時間的基礎上多算一 天的時間,是因為閏年在二月份比在平年時多出來一天。優(yōu)選地,令牌其他程序模塊進行計算的代碼實現(xiàn)如下For(i = 0 ;i < day ;i++){D_seed3+ = mainsofDay
;}步驟S208,令牌內部固件程序讀取第一時間值中的小時數(shù),并根據(jù)時間表計算得 至Ij D_seed4。優(yōu)選地,令牌內固件程序提取第一時間值中的小時數(shù),例如14點,令牌根據(jù)提取的小時數(shù)計算2009年11月25日14時0分0秒距離2009年11月24日0時0分0秒已 過去的分鐘數(shù),D_seed4 = 60*14 = 840。優(yōu)選地,令牌進行計算的代碼實現(xiàn)如下For(i = 0 ;i < min ;i++){D_seed3+ = mainsofHour
;}步驟S209,令牌內部固件程序讀取第一時間值中的分鐘數(shù),得到D_Seed5。優(yōu)選地,令牌固件程序提取第一時間值中的分鐘數(shù),例如52分,得到2009年11月 25日14時52分距離2009年11月25日14時0分0秒已過去的分鐘數(shù),D_seed5 = 52。步驟S210,令牌根據(jù)上述查找所得的數(shù)據(jù)或計算所得的數(shù)據(jù),計算得到動態(tài)因子 D_seecL優(yōu)選地,采用將上述查找或計算所得的D_seedl、D_seed2、D_seed3、D_seed4、D_ seed5做加法運算的方法,并將計算所得的結果記為D_Seed,具體計算方法如下D_seed = D_seedl+D_seed2 + D_seed3 + D_seed4 + D_seed5 = 7384608000+354240+36000+840+52 = 7684999132??傻?,令牌到 2009 年 11 月 25 日 14 時 52分33秒距離1970年1月1日0時0分0秒已過去的分鐘數(shù)D_seed = 7684999132。步驟S211,令牌判斷動態(tài)因子的變化時間步長是60秒還是30秒,如果是30秒,則 轉入步驟步驟S212,如果是60秒,則轉入步驟步驟S215。步驟S212,令牌內將計算得到的動態(tài)因子D_Seed擴大一倍,得到動態(tài)因子D_ seed' ο優(yōu)選地,如果時間步長是30 秒,則D_seed' = D_seed*2 = 15369998264。步驟S213,令牌內固件程序讀取第一時間值中的秒數(shù),并判斷秒數(shù)是否是大于30 秒,如果大于30秒,轉入步驟S214,否則,轉入步驟S215。優(yōu)選地,令牌提取的第一時間值是2009. 11.25 14:52:33,第一時間值中的秒數(shù)是 33秒,要大于時間步長30秒。步驟S214,將計算得到的動態(tài)因子0_8擾(1'加1,得到動態(tài)因子D_Seed"。優(yōu)選地,D_seed〃= D_seecT +1 = 15369998265。
步驟S215,令牌輸出動態(tài)因子。優(yōu)選地,如果令牌采用的時間步長是60秒,則令牌得到的動態(tài)因子便是cLseed = 7684999132;如果令牌采用的時間步長是30秒,并且經過前面的判斷后,得到動態(tài)因子是 D_seed' gJc D_seed"。步驟S216,令牌根據(jù)動態(tài)因子生成并顯示動態(tài)口令。令牌根據(jù)內存的靜態(tài)因子及 計算得到的動態(tài)因子生成動態(tài)口令,并顯示生成的動態(tài)口令。優(yōu)選地,令牌生成動態(tài)口令的過程具體為令牌通過預存的算法對動態(tài)因子和靜 態(tài)因子進行計算得到動態(tài)口令。優(yōu)選地,在計算動態(tài)因子時,由于有不足60秒或30秒的情況存在,上述實施例做 的處理是將不足60秒或不足30秒的時間舍棄不用,當然在具體的應用中還可以將不足60 秒或不足30秒的時間進行處理,將處理后得到的時間用作動態(tài)口令的顯示時間。根據(jù)本發(fā)明實施例,優(yōu)選地,本發(fā)明中存儲的時間表還可以具體到月表具體包括平年月表、閏年月表,其中,閏年月表包括閏年年份中每月距離當前閏年年份1月已過去的 分鐘數(shù),日表具體包括當前月所有日期距離當前月1日已過去的分鐘數(shù);那么上述過程中 得到動態(tài)因子的過程還包括1、令牌讀取當前年份,并根據(jù)時間表中的年表查找當前年份距離基準計時時間已 過去的分鐘數(shù);2、令牌讀取當前月份,判斷當前年份是否是閏年,如果是閏年,則根據(jù)時間表中的 當前閏年對應的月表查找當前月份距離1月已過去的分鐘數(shù),如果是平年,則根據(jù)時間表 中的當前平年對應的月表查找當前月份距離1月已過去的分鐘數(shù);3、令牌讀取當前日期,并根據(jù)時間表中的當前月對應的日表查找當前日期距離1 日已過去的分鐘數(shù);4、令牌讀取當前小時數(shù),并根據(jù)時間表中的時表按照上述方式計算小時數(shù)距離0 時已過去的分鐘數(shù);5、令牌讀取當前分鐘數(shù),并將查找所得及計算所得的數(shù)據(jù)進行加法運算,運算得 到的結果便是步長為60秒時的動態(tài)因子,如果動態(tài)因子步長為30秒,則將運算得到的結果 乘以2,同時令牌還需要判斷當期時間的秒數(shù)是否大于30秒,如果小于,則乘以2后的數(shù)據(jù) 便是步長是30秒的動態(tài)因子,如果大于,則將乘以2后得到的數(shù)據(jù)加1,便是步長是30秒的 動態(tài)因子。根據(jù)本發(fā)明的實施例,提供了 一種動態(tài)令牌。圖3是根據(jù)本發(fā)明實施例的動態(tài)令牌的示意圖。如圖3所示,該裝置包括讀取模塊301、查找模塊302、計算模塊303、動態(tài)因子計算模塊304、生成顯示模塊305。其中,讀取模塊301用于分別讀取時間值中的年份、月份、日期、小時數(shù);查找模塊302用于根據(jù)時間值中的年份、月份查找時間表,分別得到時間值中的年份、月份與基準時 間中年份、月份的差值,其中,時間表中存儲有各時間值與基準時間值的差值信息;計算模 塊303用于分別計算時間值中的日期、小時數(shù)和基準時間中的日期、小時數(shù)的差值;動態(tài)因 子計算模塊304用于根據(jù)時間值和基準時間的差值以及動態(tài)因子的變化時間步長得到動 態(tài)因子;生成顯示模塊305用于根據(jù)動態(tài)因子生成并顯示動態(tài)口令。
優(yōu)選地,該裝置還包括判斷模塊306。其中,判斷模塊306,用于判斷動態(tài)因子的變化時間步長。進一步地,判斷模塊306還用于判斷時間值中的年份是否是閏年以及在判斷結果為是的情況下,以及判斷時間值中的月份是否超過二月份。圖4是根據(jù)本發(fā)明實施例優(yōu)選的動態(tài)令牌的示意圖。如圖4所示,該動態(tài)令牌400包括觸發(fā)模塊401、控制模塊402、動態(tài)因子生成模 塊403、動態(tài)口令生成模塊404和顯示模塊405。其中,觸發(fā)模塊401和控制模塊402,用于開啟動態(tài)因子生成模塊403;觸發(fā)模塊 401具體為觸發(fā)按鍵、按鈕或開關;控制模塊402,在觸發(fā)模塊401觸發(fā)下啟動動態(tài)因子生成 模塊403生成動態(tài)因子,并將動態(tài)口令生成模塊404生成的動態(tài)口令傳輸給顯示模塊405 顯示;顯示模塊405,用于在動態(tài)口令生成后控制顯示或關閉顯示生成的動態(tài)口令;動態(tài)因 子生成模塊403,用于生成動態(tài)因子;動態(tài)口令生成模塊404,用于生成動態(tài)口令;顯示模塊 405,用于在控制模塊402控制下開啟或關閉顯示。優(yōu)選地,動態(tài)令牌400包括觸動令牌。觸動令牌提取第一時間值及動態(tài)因子的變 化時間步長。觸動令牌讀取第一時間值中的年份,查找時間表,得到第一數(shù)據(jù);令牌讀取第一 時間值中的月份,查找時間表,得到第二數(shù)據(jù);令牌讀取第一時間值中的日期,并判斷第一 時間值中的年份是否是閏年,如果是閏年,則判斷第一時間值中的月份是否過了二月份,其 中,如果過了二月份,則將第一時間值中的日期進行加1運算,并根據(jù)運算得到的日期計算 得到第三數(shù)據(jù);如果沒有,則不對第一時間值中的日期進行處理,并根據(jù)第一時間值中的日 期計算得到第四數(shù)據(jù)。如果是平年,則不對第一時間值中的日期進行處理;并根據(jù)第一時間 值中的日期計算得到第四數(shù)據(jù)。優(yōu)選地,令牌讀取第一時間值中的小時數(shù)、分鐘數(shù),得到第五、第六數(shù)據(jù);令牌將第 一至第六數(shù)據(jù)進行運算,得到第一結果值;令牌判斷動態(tài)因子的變化時間步長是第一預定 值還是第二預定值,其中,如果是第一預定值,則第一結果值就是動態(tài)因子;如果是第二預 定值,則判斷第一時間值中的秒數(shù)是否大于第二預定值,如果大于,則將第一結果值進行運 算得到第二結果值,第二結果值就是動態(tài)因子;如果小于,則第一結果值就是動態(tài)因子。優(yōu)選地,令牌根據(jù)動態(tài)因子生成并顯示動態(tài)口令;令牌是基于時間的動態(tài)令牌; 第一時間值是生成動態(tài)口令時的時間值;時間表具體包括年表、月表、日表、時表;時間表 的基準計時時間與動態(tài)因子的起始計時時間是相同的,其中,優(yōu)選的第一預定值具體是指 60秒,第二預定值具體是指30秒。優(yōu)選地,動態(tài)因子生成模塊403還包括查找單元4031、判斷單元4032、表存儲單 元4033、計算單元4034 ;其中,查找單元4031,用于從動態(tài)因子生成模塊中獲取令牌預存的第一時間值和 動態(tài)因子的變化時間步長,并根據(jù)上述兩個值查找表存儲單元4033存儲的時間表,查找時 間值。優(yōu)選地,第一時間值具體為生成動態(tài)口令時的時間值,如2009年11月25日 14:52:33分;動態(tài)因子的變化時間步長是指動態(tài)因子的變化周期,如60秒或30秒就是指 動態(tài)因子每隔60秒或30秒變化一次。
其中,判斷單元4032,用于判斷第一時間值中的年份是否是閏年;判斷第一時間值中的秒數(shù)是否是大于30秒;及判斷動態(tài)因子的變化時間步長具體是多少。其中,表存儲單元4033,具體存儲的包括有年表、月表、日表和時表。優(yōu)選地,年表存儲的時間是指距離基準計時時間以來的每年1月1日已過去的分 鐘數(shù);月表存儲的時間是指當前年每月距離當前年1月1日已過去的分鐘數(shù);日表存儲的 時間是指每天對應的分鐘數(shù);時表存儲的時間是指每小時對應的分鐘數(shù);基準計時時間具 體為動態(tài)因子起始計算時間值,該值和動態(tài)因子的變化時間步長在令牌出廠前就已經設定 好,存儲在令牌中,如可以設定動態(tài)因子的起始計算時間是1970年1月1日00時00分00 秒。其中,計算單元4034,當判斷單元4032判斷第一時間值中的年份是閏年時,當判 斷單元4032判斷出第一時間值中的秒數(shù)大于30秒時,當判斷單元4032判斷出動態(tài)因子的 變化時間步長是60秒或30秒時,進行相應的計算;將查找所得數(shù)據(jù)進行運算得到動態(tài)因子。優(yōu)選地,制作時間表的代碼實現(xiàn)如下*定義每年1-1 00:00:00距離1970年1-1 00:00:00已過去的分鐘數(shù)*從2000年開始到2099年*/code uint8 MinsOfYear[100][4]={0x00,OxFO,OxCl,0x20,0x00,0xF8,OxCB,OxEO,0x01,0x00,OxDl,0x00,0x01,0x08,0xD6,0x20,0x01,0x10,OxDB,0x40,0x01,0x18,0xE6,0x00,0x01,0x20,OxEB,0x20,0x01,0x28,OxFO,0x40,0x01,0x30,0xF5,0x60,0x01,0x39,0x00,0x20,0x01,0x41,0x05,0x40,0x01,0x49,OxOA,0x60,0x01,0x51,OxOF,0x80,0x01,0x59,OxlA,0x40,0x01,0x61,OxlF,0x60,0x01,0x69,0x24,0x80,0x01,0x71,0x29,OxAO,0x01,0x79,0x34,0x60,
0x01,0x81,0x39,0x80,0x01,0x89,0x3E,0xA0,0x01,0x91,0x43,OxCO,0x01,0x99,0χ4Ε,0x80,0x01,ΟχΑΙ,0x53,OxAO,0x01,0χΑ9,0x58,OxCO,0x01,OxBl,0x5D,0xE0,OxO1,0χΒ9,0x68,OxAO,0x01,OxCl,0x6D,OxCO,OxO1,0xC9,0x72,OxEO,0x01,OxDl,0x78,0x00,OxO1,0xD9,0x82,OxCO,0x01,OxEl,0x87,OxEO,OxOl,0xE9,0x8D,0x00,0x01,OxFl,0x92,0x20,OxOl,0xF9,0x9C,OxEO,0x02,0x01,0xA2,0x00,0x02,0x09,0xA7,0x20,0x02,0x11,OxAC,0x40,0x02,0x19,0xB7,0x00,0x02,0x21,OxBC,0x20,0x02,0x29,OxCl,0x40,0x02,0x31,0xC6,0x60,0x02,0x39,OxDl,0x20,0x02,0x41,0xD6,0x40,0x02,0x49,OxDB,0x60,0x02,0x51,OxEO,0x80,0x02,0x59,OxEB,0x40,0x02,0x61,OxFO,0x60,0x02,0x69,0xF5,0x80,0x02,0x71,OxFA,OxAO,0x02,0x7A,0x05,0x60,0x02,0x82,OxOA,0x80,0x02,0x8A,0x0F,0xA0,0x02,0x92,0x14,OxCO,0x02,0x9A,0xlF,0x80,0x02,0xA2,0x24,OxAO,0x02,OxAA,0x29,OxCO,0x02,0xB2,0x2E,OxEO,
0x02,OxBA,0x39,OxAO,0x02,0xC2,0x3E,0xC0,0x02,OxCA,0x43,OxEO,0x02,0xD2,0x49,0x00,0x02,OxDA,0x53,OxCO,0x02,0xE2,0x58,OxEO,0x02,0xEA,0x5E,0x00,0x02,0xF2,0x63,0x20,0x02,0xFA,0x6D,0xE0,0x03,0x02,0x73,0x00,0x03,OxOA,0x78,0x20,0x03,0x12,0x7D,0x40,0x03,OxlA,0x88,0x00,0x03,0x22,0x8D,0x20,0x03,0x2A,0x92,0x40,0x03,0x32,0x97,0x60,0x03,0x3A,0xA2,0x20,0x03,0x42,0xA7,0x40,0x03,0x4A,0xAC,0x60,0x03,0x52,OxBl,0x80,0x03,0x5A,0xBC,0x40,0x03,0x62,OxCl,0x60,0x03,0x6A,0xC6,0x80,0x03,0x72,OxCB,OxAO,0x03,0x7A,0xD6,0x60,0x03,0x82,OxDB,0x80,0x03,0x8A,OxEO,OxAO,0x03,0x92,0xE5,OxCO,0x03,0x9A,0xF0,0x80,0x03,0xA2,0xF5,OxAO,0x03,OxAA,OxFA,OxCO,0x03,0xB2,0xFF,OxEO,0x03,OxBB,OxOA,OxAO,0x03,0xC3,0x0F,OxCO,0x03,OxCB,0x14,OxEO,0x03,0xD3,OxlA, 0x00,0x03,OxDB,0x24,OxCO,0x03,0xE3,0x29,OxEO,0x03,0xEB,0x2F,0x00,
0x03,0xF3,0x34,0x20,0x03,0xFB,0x3E,0xE0,0x04,0x03,0x44,0x00,0x04,OxOB,0x49,0x20,};*定義平年每月1日已過去的分鐘數(shù)*/code uint8 Mins0fMonth_N0LEAP[12][4]={0x00,0x00,0x00,0x00,0x00,0x00,Oxae ,0x60,0x00,0x01,0x4b,OxeO,0x00,0x01,Oxfa,0x40,0x00,0x02,0xa3,0x00,0x00,0x03,0x51,0x60,0x00,0x03,Oxfa,0x20,0x00,0x04,0xa8,0x80,0x00,0x05,0x56,OxeO,0x00,0x05,Oxff,OxaO,OxOO,0x06,Oxae,OxOO,0x00,0x07,0x56,OxcO};*定義閏年每月1日已過去的分鐘數(shù)*/code uint8 Mins0fMonth_LEAP[12][4]={0x00,0x00,0x00,0x00,0x00,0x00,OxAE,0x60,0x00,0x01,0x51,0x80,0x00,0x01,OxFF,OxEO,0x00,0x02,0xA8, OxAO,0x00,0x03,0x57,0x00,0x00,0x03,OxFF, OxCO,0x00,0x04,OxAE,0x20,0x00,0x05,0x5C,0x80,
0x00,0x06,0x05,0x40,0x00,0x06,0xB3,OxAO,0x00,0x07,0x5C,0x60};*定義每天對應的分鐘數(shù)*/code uint8 MinsOfDay[1][4]={0x00,0x00,0x05,OxAO,};*定義每小時對應的分鐘數(shù)*/code uint8 MinsOfHour[1][4]={0x00,0x00,0x00,0x3c,};從以上的描述中,可以看出,本發(fā)明方法簡單、運算速度快、縮短了大量計算時間,對于低成本芯片和低功耗設備而言,無疑解決了無法運行乘法的問題。需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不 同于此處的順序執(zhí)行所示出或描述的步驟。顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成 的網絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲 在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們 中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的 硬件和軟件結合。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技 術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修 改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
一種時間信息的處理方法,其特征在于,包括觸發(fā)動態(tài)令牌,所述動態(tài)令牌提取時間值和動態(tài)因子的變化時間步長;所述動態(tài)令牌分別讀取所述時間值中的年份、月份;所述動態(tài)令牌根據(jù)所述時間值中的年份、月份查找時間表,分別得到所述時間值中的年份、月份與所述基準時間中年份、月份的差值,其中,所述時間表中存儲有各時間值與所述基準時間值的差值信息;所述動態(tài)令牌分別讀取所述時間值中的日期、小時數(shù);所述動態(tài)令牌分別計算所述時間值中的日期、小時數(shù)和所述基準時間中的日期、小時數(shù)的差值;所述動態(tài)令牌計算所述時間值與所述基準時間的差值;所述動態(tài)令牌根據(jù)所述時間值與所述基準時間的差值以及所述動態(tài)因子的變化時間步長得到動態(tài)因子;所述動態(tài)令牌根據(jù)所述動態(tài)因子生成并顯示動態(tài)口令。
2.根據(jù)權利要求1所述的方法,其特征在于,所述時間表包括 年表、月表、日表、時表;其中,所述年表和所述月表分別存儲有所述時間值中年份、月份與所述基準時間中相應時間 信息的差值;所述日表存儲有一天時間對應的分鐘數(shù); 所述時表存儲有一小時時間對應的分鐘數(shù)。
3.根據(jù)權利要求2所述的方法,其特征在于,所述月表還包括 平年月表,存儲平年年份中每月距離當前年份一月的分鐘數(shù); 閏年月表,存儲閏年年份中每月距離當前年份一月的分鐘數(shù)。
4.根據(jù)權利要求2所述的方法,其特征在于,所述動態(tài)令牌分別計算所述時間值中的 日期、小時數(shù)和所述基準時間中的日期、小時數(shù)的差值包括查找所述日表、所述時表;根據(jù)所述日表、時表中的數(shù)據(jù)及所述時間值中的日期、小時數(shù)計算所述時間值中的日 期、小時數(shù)與所述基準時間值中的日期、小時數(shù)的差值。
5.根據(jù)權利要求1所述的方法,其特征在于,在所述動態(tài)令牌分別讀取所述時間值中 的年份、月份之后,所述方法還包括判斷所述時間值中的年份是否是閏年;在判斷結果為是的情況下,判斷所述時間值中的月份是否超過二月份; 在所述時間值中的月份超過二月份的情況下,將所述時間值中的日期加一。
6.根據(jù)權利要求1所述的方法,其特征在于,所述動態(tài)令牌計算所述時間值與所述基 準時間的差值包括所述動態(tài)令牌讀取所述時間值中的分鐘數(shù);所述動態(tài)令牌將所述查找所述時間表得到的所述時間值中的年份、月份與所述基準 時間中年份、月份的差值,計算所得的所述時間值中的日期、小時數(shù)和所述基準時間中的日 期、小時數(shù)的差值,所述讀取的分鐘數(shù)相加得到所述時間值與所述基準時間的差值。
7.根據(jù)權利要求1所述的方法,其特征在于,所述動態(tài)令牌根據(jù)所述時間值與所述基準時間的差值以及所述動態(tài)因子的變化時間步長得到動態(tài)因子包括在所述動態(tài)因子的變化時間步長為第一預設值的情況下,所述動態(tài)因子為所述時間值 與所述基準時間值的差值;在所述動態(tài)因子的變化時間步長為第二預設值的情況下,所述動態(tài)令牌讀取所述時間 值中的秒數(shù),并判斷所述讀取的秒數(shù)是否大于第二預設值, 如果大于,所述動態(tài)因子按照第一預設方式進行計算; 如果小于,所述動態(tài)因子按照第二預設方式進行計算。
8.根據(jù)權利要求7所述的方法,其特征在于, 所述第一預設方式為所述時間值與所述基準時間值的差值的二倍再加一; 所述第二預設公式為所述時間值與所述基準時間值的差值的二倍。
9.一種動態(tài)令牌,其特征在于,包括讀取模塊,用于分別讀取所述時間值中的年份、月份、日期、小時數(shù); 查找模塊,用于根據(jù)所述時間值中的年份、月份查找時間表,分別得到所述時間值中的 年份、月份與所述基準時間中年份、月份的差值,其中,所述時間表中存儲有各時間值與所 述基準時間值的差值信息;計算模塊,用于分別計算所述時間值中的日期、小時數(shù)和所述基準時間中的日期、小時 數(shù)的差值;動態(tài)因子計算模塊,用于根據(jù)所述時間值和所述基準時間的差值以及動態(tài)因子的變化 時間步長得到動態(tài)因子;生成顯示模塊,用于根據(jù)所述動態(tài)因子生成并顯示動態(tài)口令。
10.根據(jù)權利要求9所述的動態(tài)令牌,其特征在于,所述動態(tài)令牌還包括判斷模塊,用于判斷所述時間值中的年份是否是閏年以及在判斷結果為是的情況下, 判斷所述時間值中的月份是否超過二月份。
全文摘要
本發(fā)明公開了一種時間信息的處理方法及動態(tài)令牌。其中,該方法包括動態(tài)令牌分別讀取時間值中的年份、月份;動態(tài)令牌根據(jù)時間值中的年份、月份查找時間表,分別得到時間值中的年份、月份與基準時間中年份、月份的差值;動態(tài)令牌分別讀取時間值中的日期、小時數(shù)并分別計算時間值中的日期、小時數(shù)和基準時間中的日期、小時數(shù)的差值;動態(tài)令牌計算時間值與基準時間的差值;動態(tài)令牌根據(jù)時間值與基準時間的差值以及動態(tài)因子的變化時間步長得到動態(tài)因子并根據(jù)動態(tài)因子生成并顯示動態(tài)口令。通過本發(fā)明,能夠提高對時間信息的處理效率。
文檔編號H04L9/32GK101800643SQ200910243250
公開日2010年8月11日 申請日期2009年12月29日 優(yōu)先權日2009年12月29日
發(fā)明者于華章, 陸舟 申請人:北京飛天誠信科技有限公司