一種生成滿足安全強度要求的隨機數的方法
【專利摘要】本發明公開一種生成滿足安全強度要求的隨機數的方法,屬于信息安全領域,所述方法包括:A:初始化熵值和內部隨機數狀態值,接收系統事件更新熵值和內部隨機數狀態值,判斷是否達到隨機數安全強度要求,是則執行C,否則根據第一隨機數更新內部隨機數狀態值和熵值,判斷是否達到隨機數安全強度要求,是則執行C,否則根據第二隨機數更新內部隨機數狀態值和熵值,執行B,B:判斷是否達到隨機數安全強度要求,是則執行C,否則調用系統函數,更新內部隨機數狀態值和熵值,返回B;C:根據待生成隨機數的長度和內部隨機數狀態值,生成隨機數。采用本發明的技術方案,能夠實現生成的隨機數隨機性更強,更加能夠滿足對隨機數的安全強度要求。
【專利說明】一種生成滿足安全強度要求的隨機數的方法
【技術領域】
[0001]本發明涉及信息安全領域,尤其涉及一種生成滿足安全強度要求的隨機數的方法。
【背景技術】
[0002]隨著計算機技術、通信技術和網絡技術的迅速發展,信息在存儲、傳送、接收和處理過程中的安全問題已受到人們的廣泛關注。隨機數在信息安全系統中扮演著重要的角色,在基于計算機、網絡通信和交易中有著廣泛的應用基礎。比如密鑰產生、初始化向量、時間戳、認證挑戰碼、密鑰協商等,都要用到隨機數。
[0003]Openssl是一個強大的安全套接字層密碼庫,沒有太多限制的開放源代碼的軟件包,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協議,并提供豐富的應用程序供測試或其他目的使用。
[0004]隨機數在計算機軟件、硬件、安全等領域有著廣泛的應用,因此,產生高效優質(即隨機性高)的隨機數變得非常重要。
【發明內容】
[0005]本發明為解決現有技術中存在的問題,提供了一種生成滿足安全強度要求的隨機數的方法。
[0006]本發明采用的技術方案是:一種生成滿足安全強度要求的隨機數的方法,包括:
[0007]步驟S1:隨機數生成器初始化熵值和內部隨機數狀態值;
[0008]步驟S2:所述隨機數生成器接收系統事件,根據所述系統事件更新所述熵值和所述內部隨機數狀態值;
[0009]步驟S3:所述隨機數生成器根據更新后的所述熵值,判斷是否達到隨機數安全強度要求,如果是,則執行步驟S8,否則執行步驟S4 ;
[0010]步驟S4:所述隨機數生成器根據第一隨機數更新所述內部隨機數狀態值和所述熵值;
[0011]步驟S5:所述隨機數生成器根據更新后的所述熵值,判斷是否達到隨機數安全強度要求,如果是,則執行步驟S8,否則執行步驟S6 ;
[0012]步驟S6:所述隨機數生成器根據第二隨機數更新所述內部隨機數狀態值和所述熵值;
[0013]步驟S7:所述隨機數生成器根據更新后的所述熵值,判斷是否達到隨機數安全強度要求,如果是,則執行步驟S8,否則調用系統函數,更新所述內部隨機數狀態值和所述熵值,返回步驟S7;
[0014]步驟S8:所述隨機數生成器根據待生成隨機數的長度和所述內部隨機數狀態值,生成隨機數。
[0015]所述步驟S2中,所述根據所述系統事件更新熵值和內部隨機數狀態值,具體為:所述隨機數生成器根據所述系統事件,調用第一增加隨機數熵值的函數,更新熵值和內部隨機數狀態值。
[0016]所述步驟S4具體為:
[0017]步驟S4-1:所述隨機數生成器根據所述第一隨機數和所述存放增加隨機數的緩存區,調用預設標準庫函數,將所述第一隨機數復制到所述存放增加隨機數的緩存區中;
[0018]步驟S4-2:所述隨機數生成器根據所述存放增加隨機數的緩存區中的數據和所述數據的長度,調用第二增加隨機數熵值的函數,更新所述內部隨機數狀態值。
[0019]所述步驟S6具體為:
[0020]步驟S6-1:所述隨機數生成器根據所述第二隨機數和所述存放增加隨機數的緩存區,調用預設標準庫函數,將所述第二隨機數復制到所述存放增加隨機數的緩存區中;
[0021]步驟S6-2:所述隨機數生成器根據所述存放增加隨機數的緩存區中的數據和所述存放增加隨機數的緩存區中的數據的長度,調用第三增加隨機數熵值的函數,更新所述熵值和所述內部隨機數狀態值。
[0022]所述步驟S7中判斷為否時,具體為:所述隨機數生成器調用第四增加隨機數熵值的系統函數,更新熵值和內部隨機數狀態值。
[0023]所述根據更新后的所述熵值,判斷是否達到隨機數安全強度要求,具體為:判斷更新后的所述熵值是否達到預設值,如果是,則達到隨機數安全強度要求,否則未達到隨機數安全強度要求。
[0024]所述步驟S7判斷為是時,還包括:
[0025]步驟al:所述隨機數生成器根據存放種子文件名稱的緩存區的首地址和待生成的種子文件的長度,生成種子文件路徑,將所述種子文件路徑保存至所述種子文件名稱的緩存區中;
[0026]步驟a2:所述隨機數生成器根據所述存放種子文件名稱的緩存區的首地址,生成預設長度的種子文件,根據所述種子文件更新所述內部隨機數狀態值,執行步驟S8。
[0027]所述步驟al具體為:所述隨機數生成器根據所述存放種子文件名稱的緩存區的首地址和所述待生成的種子文件的長度,調用產生默認種子文件路徑的函數,生成種子文件路徑,將所述種子文件路徑保存至所述存放種子文件名稱的緩存區中。
[0028]所述步驟al與所述步驟a2之間還包括:判斷所述存放種子文件名稱的緩存區中的數據是否為空,如果是,則結束,否則執行步驟a2。
[0029]所述步驟a2,具體為:
[0030]步驟a2_l:所述隨機數生成器根據所述存放種子文件名稱的緩存區的首地址,調用生成種子文件的函數,生成預設長度的種子文件;
[0031]步驟a2_2:所述隨機數生成器根據所述存放種子文件名稱的緩存區的首地址和所述種子文件的長度,調用加載種子文件的函數,更新內部隨機數狀態值。
[0032]所述步驟S8,還包括:判斷是否成功生成隨機數,如果是,則將所述隨機數保存,并將所述內部隨機數狀態值置為初始值,結束,否則結束。
[0033]所述步驟S8,具體為:
[0034]步驟S8-1:所述隨機數根據待生成隨機數的長度和內部隨機數狀態值,調用生成隨機數的函數,生成隨機數,將函數返回值賦值給存儲中間值;
[0035]步驟S8-2:判斷所述存儲中間值是否為預設值,如果是,則生成隨機數成功,結束,否則生成隨機數失敗,結束。
[0036]所述將所述內部隨機數狀態值置為初始值,具體為:所述隨機數生成器調用擦除內部隨機數狀態值的函數,將所述內部隨機數狀態值置為初始值。
[0037]本發明取得的有益效果是:采用本發明的技術方案,能夠實現生產的隨機數隨機性更強,更加能夠滿足對隨機數的安全強度要求。
【專利附圖】
【附圖說明】
[0038]為了更清楚的說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0039]圖1是本發明實施例1提供的一種生成滿足安全強度要求的隨機數的方法流程圖;
[0040]圖2是本發明實施例2提供的一種生成滿足安全強度要求的隨機數的方法流程圖。
【具體實施方式】
[0041]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0042]實施例1
[0043]本發明實施例1提供了一種生成滿足安全強度要求的隨機數的方法,如圖1所示,包括:本發明通過調用OpenSSL的隨機數生成的接口函數,實現生成符合預設要求的隨機數,具體操作如下:
[0044]步驟101:隨機數生成器初始化熵值和內部隨機數狀態值;
[0045]步驟102:隨機數生成器接收系統事件,根據系統事件更新熵值和內部隨機數狀態值;
[0046]優選的,所述系統事件為windows系統事件,本實施例為鼠標移動消息WM_M0USEM0VE ;
[0047]其中,根據系統事件更新熵值和內部隨機數狀態值,具體為:調用第一增加隨機數熵值的函數 intRAND_event (UINT iMsg, WPARAM wParam, LPARAM I Par am)函數,其中,iMsg為鼠標移動事件WM_M0USEM0VE,wParam和IParam為橫縱坐標值;
[0048]步驟103:隨機數生成器根據熵值,判斷是否達到隨機數安全強度要求,如果是,則執行步驟108,否則執行步驟104 ;
[0049]具體為:判斷熵值是否達到預設值,是則達到隨機數安全強度要求,否則未達到隨機數安全強度要求,優選的,預設值為32 ;
[0050]步驟104:隨機數生成器根據第一隨機數更新內部隨機數狀態值和熵值;
[0051]本實施例中,所述步驟104,具體包括:
[0052]步驟104-1:隨機數生成器根據第一隨機數和存放增加隨機數的緩存區,調用預設標準庫函數,將第一隨機數復制到存放增加隨機數的緩存區中;
[0053]步驟104-2:隨機數生成器根據存放增加隨機數的緩存區中的數據和該數據的長度,調用第二增加隨機數熵值的函數,更新內部隨機數狀態值;
[0054]步驟105:隨機數生成器根據熵值,判斷是否達到隨機數安全強度要求,如果是,則執行步驟108,否則執行步驟106 ;
[0055]步驟106:隨機數生成器根據第二隨機數更新內部隨機數狀態值和熵值;
[0056]步驟107:隨機數生成器根據熵值,判斷是否達到隨機數安全強度要求,如果是,則執行步驟108,否則調用系統函數,更新內部隨機數狀態值和熵值,返回步驟107 ;
[0057]本實施例中,步驟107判斷為是時還包括:
[0058]步驟al:隨機數生成器根據存放種子文件名稱的緩存區的首地址和待生成的種子文件的長度,生成種子文件路徑,將種子文件路徑保存至種子文件名稱的緩存區中;
[0059]步驟a2:隨機數生成器根據存放種子文件名稱的緩存區的首地址,生成預設長度的種子文件,根據種子文件更新內部隨機數狀態值,執行步驟108 ;
[0060]步驟108:隨機數生成器根據待生成隨機數的長度和內部隨機數的狀態值,生成隨機數,結束;
[0061]本步驟還包括:判斷是否成功生成隨機數,如果是,則將隨機數保存,并將內部隨機數狀態值置為初始值,結束,否則結束。
[0062]實施例2
[0063]本發明實施例2提供了一種生成滿足安全強度要求的隨機數的方法,如圖2所示,包括:本發明通過調用OpenSSL的隨機數生成的接口函數,實現生成符合預設要求的隨機數,具體操作如下:
[0064]步驟201:隨機數生成器初始化熵值和內部隨機數狀態值;
[0065]本實施例中,具體為:將熵值和內部隨機數狀態值均初始化為O ;
[0066]步驟202:隨機數生成器分配存放增加隨機數的緩沖區、存放生成的隨機數的緩沖區和存放種子文件名稱的緩沖區;
[0067]本實施例中,隨機數生成器分配的緩存區包括存放增加隨機數的緩沖區(charbuf[20])、存放生成的隨機數的緩存區(char out[20])和存放種子文件名稱的緩存區(char filename [50]);
[0068]步驟203:隨機數生成器接收系統事件,根據系統事件調用第一增加隨機數熵值的函數,更新熵值和內部隨機數狀態值;
[0069]優選的,熵值的初始值為0,內部隨機數狀態值的初始值為O ;
[0070]本實施例中,第一增加隨機數熵值的函數為intRAND_event(nNT iMsg, WPARAMwParam, LPARAM I Par am)函數,其中,參數iMsg為通過事件類型接收熵值,本實施例優選的為Windows操作系統的鼠標移動消息(WM_M0USEM0VE),參數wParam和IParam為該事件的兩個特性,本實施例為橫縱坐標值0,即調用RAND_event (WM_M0USEM0VE, O, O)更新熵值和內部隨機數狀態值;
[0071]步驟204:隨機數生成器根據更新后的熵值,判斷是否達到隨機數安全強度要求,如果是,執行步驟212,否則執行步驟205 ;
[0072]本實施例中,根據更新后的熵值,判斷是否達到隨機數安全強度要求,具體為:判斷更新后的熵值是否為預設值,如果是,則達到隨機數安全強度要求,否則未達到隨機數安全強度要求;
[0073]優選的,所述預設值為32 ;
[0074]步驟205:隨機數生成器根據存放增加隨機數的緩存區和第一隨機數,調用預設標準庫函數,將第一隨機數復制到存放增加隨機數的緩沖區中;
[0075]本實施例中,第一隨機數可以為預設值,也可以為用戶輸入的數值或者是滿足隨機性的估算值;
[0076]其中,優選的,預設標準庫函數為C語言標準庫函數;
[0077]具體的,隨機數生成器通過調用C語言標準庫函數strcpy (buf,〃第一隨機數〃)將第一隨機數復制到存放增加隨機數的緩沖區中;
[0078]例如,第一隨機數為123456,則調用C語言標準庫函數strcpy (buf,〃123456〃),將第一隨機數123456復制到buf對應的存儲區中,則buf中的數據為123456 ;
[0079]進一步的,本步驟還可以為:等待接收用戶輸入的第一隨機數,當接收到用戶輸入的第一隨機數后,根據存放增加隨機數的緩存區和第一隨機數,調用預設標準庫函數,將第一隨機數復制到存放增加隨機數的緩沖區中;
[0080]步驟206:隨機數生成器根據存放增加隨機數的緩沖區和存放增加隨機數的緩沖區的長度,調用第二增加隨機數熵值的函數,更新熵值和內部隨機數狀態值;
[0081]本實施例中,第二增加隨機數熵值的函數為void RAND_add(constvoid*buf, intnum),其中,buf為存放增加隨機數的緩沖區的首地址,num為存放增加隨機數的緩存區的長度即 RAND_add(buf, strlen(buf)););
[0082]優選的,根據存放增加隨機數的緩沖區和存放增加隨機數的緩沖區的長度,應用哈希算法,更新熵值;
[0083]步驟207:隨機數生成器根據更新后的熵值,判斷是否達到隨機數安全強度要求,如果是,執行步驟212,否則執行步驟208 ;
[0084]本實施例中,根據更新后的熵值,判斷是否達到隨機數安全強度要求,具體為:判斷更新后的熵值是否為預設值,如果是,則達到隨機數安全強度要求,否則未達到隨機數安全強度要求;
[0085]優選的,預設值為32 ;
[0086]步驟208:隨機數生成器根據存放增加隨機數的緩存區和第二隨機數,調用預設標準庫函數,將第二隨機數復制到存放增加隨機數的緩沖區中;
[0087]本實施例中,第二隨機數可以為預設值,也可以為用戶輸入的數值或者是滿足隨機性的估算值;
[0088]其中,優選的,預設標準庫函數為C語言標準庫函數;
[0089]具體的,隨機數生成器通過調用C語言標準庫函數strcpy (buf,〃第二隨機數〃)將第二隨機數復制到存放增加隨機數的緩沖區中;
[0090]例如,第二隨機數為23424d,則調用C語言標準庫函數strcpy (buf, 〃23424d〃),將第二隨機數23424d復制到buf對應的存儲區中;
[0091]步驟209:隨機數生成器根據存放增加隨機數的緩沖區和存放增加隨機數的緩沖區的長度,調用第三增加隨機數熵值的函數,更新熵值和內部隨機數的狀態值;
[0092]本實施例中,通過調用第三增加隨機數熵值的函數void RAND_seed(constvoid*buf, intnum),更新熵值和內部隨機數的狀態值,其中,buf為存放增加隨機數的緩沖區的首地址,num為存放增加隨機數的緩沖區的長度;
[0093]例如,存放增加隨機數的緩沖區的長度為20,即調用RAND_seed (buf,20),更新內部隨機數的狀態值;
[0094]步驟210:隨機數生成器根據更新后的熵值,判斷是否達到隨機數安全強度要求,如果是,則執行步驟212,否則執行步驟211 ;
[0095]本實施例中,根據更新后的熵值,判斷是否達到隨機數安全強度要求,具體為:判斷更新后的熵值是否為預設值,如果是,則達到隨機數安全強度要求,否則未達到隨機數安全強度要求;
[0096]優選的,所述預設值為32 ;
[0097]步驟211:隨機數生成器調用系統函數,更新內部隨機數狀態值,返回執行步驟210 ;
[0098]本實施例中,通過調用系統函數,即第四增加隨機數熵值的函數RAND_poll O,更新內部隨機數狀態值;
[0099]步驟212:隨機數生成器根據存放種子文件名稱的緩存區的首地址和待生成的種子文件的長度,調用產生默認種子文件路徑的函數,生成種子文件路徑,將種子文件路徑保存至存放種子文件名稱的緩存區中;
[0100]本實施例中,產生默認種子文件路徑的函數為RAND_file_name (char*filename, size_t size),其中,filename為存放種子文件名稱的緩存區的首地址,size為待生成的種子文件的長度;
[0101]例如,待生成的種子文件的長度為50,即P = RANDJiIe_name (filename, 50),將函數返回值賦值給存放默認種子文件路徑的首地址P ;
[0102]步驟213:隨機數生成器判斷存放種子文件名稱的緩存區中的數據是否為空,如果是,則結束;否則,執行步驟214 ;
[0103]優選的,如果存放默認種子文件路徑的首地址中的數據為空,表明產生默認種子文件失敗,如果存放默認種子文件路徑的首地址中的數據不為空,表明產生默認種子文件成功;
[0104]步驟214:隨機數生成器根據存放種子文件名稱的緩存區的首地址,調用生成種子文件的函數,生成預設長度的種子文件;
[0105]優選的,預設長度為1024字節;
[0106]本實施例中,生成種子文件的函數為RAND_write_file (const char*file),其中,file為默認種子文件路徑的首地址,本實施例中為存放默認種子文件路徑的首地址(char*p),即調用RAND_write_file (*p),生成1024字節的種子文件;
[0107]步驟215:隨機數生成器根據默認種子文件路徑的首地址和種子文件的長度,調用加載種子文件的函數,根據種子文件更新內部隨機數的狀態值;
[0108]本實施例中,加載種子文件的函數為:intRAND_load_file (const char*file, longbytes),其中,file為默認種子文件路徑的首地址,本實施例中,為存放默認種子文件路徑的首地址(char*p),bytes為需要加載的隨機數的長度,優選的,需要加載的種子文件的長度為1024字節,當生成的種子文件的長度大于1024字節時,從生成的種子文件中截取1024字節,作為需要加載的隨機數的長度,即調用RAND_load_file(*file,1024),根據1024字節長度的種子文件更新內部隨機數的狀態值;
[0109]步驟216:隨機數生成器根據待生成隨機數的長度和內部隨機數的狀態值,調用生成隨機數的函數,生成隨機數,將隨機數保存至存放生成的隨機數的緩沖區中,并將函數返回值賦值給存儲中間值;
[0110]本實施例中,生成隨機數的函數為intRAND_bytes (unsigned char*buf, intnum),其中,buf為存放生成的隨機數的緩沖區,本實施例中,為存放生成的隨機數的緩存區(charout [20]), num為待生成隨機數的長度;
[0111]例如,待生成隨機數的長度為20,即調用ret = RAND_bytes (out, 20),將函數返回值賦值給存儲中間值ret ;
[0112]步驟217:隨機數生成器根據存儲中間值,判斷生成隨機數是否成功,如果是,則執行步驟218,否則結束;
[0113]本實施例中,根據存儲中間值,判斷生成隨機數是否成功,具體為:判斷存儲中間值是否等于第一預設值,如果是,則生成隨機數成功,否則生成隨機數失敗;
[0114]優選的,第一預設值為I ;預先約定,當存儲中間值retl為1,表明隨機數生成器生成隨機數成功,當存儲中間值retl為0,表明隨機數生成器生成隨機數失敗;
[0115]步驟218:隨機數生成器調用擦除內部隨機數狀態值的函數,將內部隨機數狀態置為初始值,結束;
[0116]本實施例中,隨機數生成器調用擦除內部隨機數狀態的函數void RAND_cleanup (void),將內部保存的隨機數狀態清除為初始值0,結束。
[0117]以上所述,僅為本發明的【具體實施方式】,但本發明的保護范圍并不局限于此,任何熟悉本【技術領域】的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應所述以權利要求的保護范圍為準。
【權利要求】
1.一種生成滿足安全強度要求的隨機數的方法,其特征在于,包括: 步驟S1:隨機數生成器初始化熵值和內部隨機數狀態值; 步驟S2:所述隨機數生成器接收系統事件,根據所述系統事件更新所述熵值和所述內部隨機數狀態值; 步驟S3:所述隨機數生成器根據更新后的所述熵值,判斷是否達到隨機數安全強度要求,如果是,則執行步驟S8,否則執行步驟S4 ; 步驟S4:所述隨機數生成器根據第一隨機數更新所述內部隨機數狀態值和所述熵值;步驟S5:所述隨機數生成器根據更新后的所述熵值,判斷是否達到隨機數安全強度要求,如果是,則執行步驟S8,否則執行步驟S6 ; 步驟S6:所述隨機數生成器根據第二隨機數更新所述內部隨機數狀態值和所述熵值;步驟S7:所述隨機數生成器根據更新后的所述熵值,判斷是否達到隨機數安全強度要求,如果是,則執行步驟S8,否則調用系統函數,更新所述內部隨機數狀態值和所述熵值,返回步驟S7 ; 步驟S8:所述隨機數生成器根據待生成隨機數的長度和所述內部隨機數狀態值,生成隨機數。
2.根據權利要求1所述的方法,其特征在于,所述步驟S2中,所述根據所述系統事件更新熵值和內部隨機數狀態值,具體為:所述隨機數生成器根據所述系統事件,調用第一增加隨機數熵值的函數,更新熵值和內部隨機數狀態值。
3.根據權利要求1所述的方法,其特征在于,所述步驟S4具體為: 步驟S4-1:所述隨機數生成器根據所述第一隨機數和所述存放增加隨機數的緩存區,調用預設標準庫函數,將所述第一隨機數復制到所述存放增加隨機數的緩存區中; 步驟S4-2:所述隨機數生成器根據所述存放增加隨機數的緩存區中的數據和所述數據的長度,調用第二增加隨機數熵值的函數,更新所述內部隨機數狀態值。
4.根據權利要求1所述的方法,其特征在于,所述步驟S6具體為: 步驟S6-1:所述隨機數生成器根據所述第二隨機數和所述存放增加隨機數的緩存區,調用預設標準庫函數,將所述第二隨機數復制到所述存放增加隨機數的緩存區中; 步驟S6-2:所述隨機數生成器根據所述存放增加隨機數的緩存區中的數據和所述存放增加隨機數的緩存區中的數據的長度,調用第三增加隨機數熵值的函數,更新所述熵值和所述內部隨機數狀態值。
5.根據權利要求1所述的方法,其特征在于,所述步驟S7中判斷為否時,具體為:所述隨機數生成器調用第四增加隨機數熵值的系統函數,更新熵值和內部隨機數狀態值。
6.根據權利要求1所述的方法,其特征在于,所述根據更新后的所述熵值,判斷是否達到隨機數安全強度要求,具體為:判斷更新后的所述熵值是否達到預設值,如果是,則達到隨機數安全強度要求,否則未達到隨機數安全強度要求。
7.根據權利要求1所述的方法,其特征在于,所述步驟S7判斷為是時,還包括: 步驟al:所述隨機數生成器根據存放種子文件名稱的緩存區的首地址和待生成的種子文件的長度,生成種子文件路徑,將所述種子文件路徑保存至所述種子文件名稱的緩存區中; 步驟a2:所述隨機數生成器根據所述存放種子文件名稱的緩存區的首地址,生成預設長度的種子文件,根據所述種子文件更新所述內部隨機數狀態值,執行步驟S8。
8.根據權利要求7所述的方法,其特征在于,所述步驟al具體為:所述隨機數生成器根據所述存放種子文件名稱的緩存區的首地址和所述待生成的種子文件的長度,調用產生默認種子文件路徑的函數,生成種子文件路徑,將所述種子文件路徑保存至所述存放種子文件名稱的緩存區中。
9.根據權利要求7所述的方法,其特征在于,所述步驟al與所述步驟a2之間還包括:判斷所述存放種子文件名稱的緩存區中的數據是否為空,如果是,則結束,否則執行步驟3-2 ο
10.根據權利要求7所述的方法,其特征在于,所述步驟a2,具體為: 步驟a2_l:所述隨機數生成器根據所述存放種子文件名稱的緩存區的首地址,調用生成種子文件的函數,生成預設長度的種子文件; 步驟a2_2:所述隨機數生成器根據所述存放種子文件名稱的緩存區的首地址和所述種子文件的長度,調用加載種子文件的函數,更新內部隨機數狀態值。
11.根據權利要求1所述的方法,其特征在于,所述步驟S8,還包括:判斷是否成功生成隨機數,如果是,則將所述隨機數保存,并將所述內部隨機數狀態值置為初始值,結束,否則結束。
12.根據權利要求11所述的方法,其特征在于,所述步驟S8,具體為: 步驟S8-1:所述隨機數根據待生成隨機數的長度和內部隨機數狀態值,調用生成隨機數的函數,生成隨機數,將函數返回值賦值給存儲中間值; 步驟S8-2:判斷所述存儲中間值是否為預設值,如果是,則生成隨機數成功,結束,否則生成隨機數失敗,結束。
13.根據權利要求11所述的方法,其特征在于,所述將所述內部隨機數狀態值置為初始值,具體為:所述隨機數生成器調用擦除內部隨機數狀態值的函數,將所述內部隨機數狀態值置為初始值。
【文檔編號】G06F7/58GK104298485SQ201410553538
【公開日】2015年1月21日 申請日期:2014年10月17日 優先權日:2014年10月17日
【發明者】陸舟, 于華章 申請人:飛天誠信科技股份有限公司