两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

隨機數獲取方法、裝置及電子設備與流程

文檔序號:11653940閱讀:295來源:國知局
隨機數獲取方法、裝置及電子設備與流程

本發(fā)明涉及數據通信領域,具體而言,涉及一種隨機數獲取方法、裝置及電子設備。



背景技術:

隨機數為在一定范圍內隨機產生的數,被大量應用于不同領域,如仿真學、網絡安全、信息通訊軍事、審計等。隨機數包括偽隨機數和真隨機數,其中,偽隨機數通過某種數學公式或者算法產生的數值序列,而真隨機數是通過某些隨機物理過程產生。

在現有技術中,通常從隨機數芯片中獲取真隨機數,其過程為,需要獲取隨機數的應用發(fā)起隨機數請求,驅動在收到隨機數請求后直接將該請求封裝為對應的私有協議,通過以太發(fā)送到硬件。硬件通過解析驅動的隨機數請求,向隨機數芯片發(fā)起交易,獲取對應長度的隨機數。硬件將獲取到的隨機數封裝私有協議,通過以太發(fā)送給驅動,驅動解析對應的私有協議,響應軟件隨機數請求。

也就是說,現有技術中,需要獲取隨機數的應用每一次的隨機數請求都從隨機數芯片獲取,實際應用中,隨機數的物理產生過程速度較慢,響應一次隨機請求的時延比較大,一次隨機數請求需要等待很長的時間才能完成,處理效率低。



技術實現要素:

有鑒于此,本發(fā)明實施例提供了一種隨機數獲取方法、裝置及電子設備,將從隨機數芯片獲取的隨機數進行存儲,在每次接收到隨機數請求時,從存儲的隨機數中獲取相應長度的隨機數返回,以改善上述問題。

為了實現上述目的,本發(fā)明采用的技術方案如下:

一種隨機數獲取方法,所述方法包括:接收隨機數請求,所述隨機數請求中包括所要獲取的隨機數的請求字節(jié)長度;從預設存儲區(qū)域中獲取并返回長度為所述請求字節(jié)長度的隨機數,其中,所述預設存儲區(qū)域存儲有從隨機數芯片獲取的隨機數;若當前預設存儲區(qū)域中未被獲取過的隨機數的字節(jié)長度小于或等于預設水線值,從所述隨機數芯片獲取隨機數并存儲于所述預設存儲區(qū)域。

一種隨機數獲取裝置,所述裝置包括:

隨機數存儲模塊,用于在預設存儲區(qū)域存儲從隨機數芯片獲取的隨機數,請求接收模塊,用于接收隨機數請求,所述隨機數請求中包括所要獲取的隨機數的請求字節(jié)長度;隨機數返回模塊,用于從預設存儲區(qū)域中獲取并返回長度為所述請求字節(jié)長度的隨機數;隨機數更新模塊,若當前預設存儲區(qū)域中未被獲取過的隨機數的字節(jié)長度小于或等于預設水線值,用于從所述隨機數芯片獲取隨機數并存儲于所述預設存儲區(qū)域。

一種電子設備,所述電子設備包括存儲器和處理器,所述存儲器耦接到所述處理器,所述存儲器存儲指令,當所述指令由所述處理器執(zhí)行時使所述處理器執(zhí)行以下操作:接收隨機數請求,所述隨機數請求中包括所要獲取的隨機數的請求字節(jié)長度;從預設存儲區(qū)域中獲取并返回長度為所述請求字節(jié)長度的隨機數,其中,所述預設存儲區(qū)域存儲有從隨機數芯片獲取的隨機數;若當前預設存儲區(qū)域中未被獲取過的隨機數的字節(jié)長度小于或等于預設水線值,從所述隨機數芯片獲取隨機數并存儲于所述預設存儲區(qū)域。

本發(fā)明實施例提供的隨機數獲取方法、裝置及電子設備中,在預設存儲區(qū)域存儲有從隨機數芯片獲取的隨機數,每次接收到隨機數請求時,從預設存儲區(qū)域中獲取并返回隨機數,并且,當預設存儲區(qū)域中未被獲取過的隨機數字節(jié)長度小于或等于預設水線值,從隨機數芯片中獲取隨機數并存儲于預設存儲區(qū)域中。本方案中,響應隨機數請求而返回的隨機數從預設存儲區(qū)域中獲取,在預設存儲區(qū)域中未被獲取過的隨機數的字節(jié)長度大于預設水線值時,不需要從隨機數芯片獲取隨機數,減少了響應隨機數請求從隨機數芯片獲取隨機數的次數,提高了處理效率。

為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。

附圖說明

為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

圖1示出了本發(fā)明第一實施例提供的隨機數獲取方法的流程圖;

圖2示出了本發(fā)明第二實施例提供的隨機數獲取裝置的功能模塊圖;

圖3示出了本發(fā)明第三實施例提供的電子設備的結構框圖。

具體實施方式

下面將結合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領域技術人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。同時,在本發(fā)明的描述中,術語“第一”、“第二”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。

第一實施例

本實施例提供了一種隨機數獲取方法,用于獲取隨機數。請參見圖1,該方法包括:

步驟s110:接收隨機數請求,所述隨機數請求中包括所要獲取的隨機數的請求字節(jié)長度。

接收需要隨機數的應用、程序或者設備等發(fā)起的隨機數請求,并且在該隨機數請求包括相應應用、程序或者設備等需要的隨機數的字節(jié)長度,即所要獲取的隨機數的請求字節(jié)長度。例如接收到的隨機數請求中的請求字節(jié)長度為2,表示發(fā)起隨機數請求的應用、程序或者設備等需要2字節(jié)長度的隨機數。

步驟s120:從預設存儲區(qū)域中獲取并返回長度為所述請求字節(jié)長度的隨機數,其中,所述預設存儲區(qū)域存儲有從隨機數芯片獲取的隨機數。

在預設存儲區(qū)域存儲有從隨機數芯片獲取的隨機數,該預設存儲區(qū)域可以是內存中構建的緩沖區(qū),其具體大小并不限定,可以是隨機數芯片所能生成的最大隨機數的大小。當接收到隨機數請求,則從預設存儲區(qū)域中獲取隨機數并返回到發(fā)起隨機數請求的相應應用、程序或者設備等,獲取的長度為隨機數請求中的請求字節(jié)長度。例如,隨機數請求中的字節(jié)長度為2字節(jié),則獲取并返回長度為2字節(jié)的隨機數。

進一步的,獲取并返回的隨機數為預設存儲區(qū)域中未被獲取過的隨機數,使返回的隨機數不同,保持隨機數的隨機性。具體實現可以通過指針,每次根據隨機數請求獲取并返回隨機數時從預設存儲區(qū)域中的指針處開始獲取,并且在獲取并返回后,指針偏移,其偏移量等于隨機數請求中的請求字節(jié)長度,以從預設存儲區(qū)域中依次獲取隨機數,例如,預設存儲區(qū)域中隨機數長度為100字節(jié),接收到一次隨機數請求中的請求字節(jié)長度為2字節(jié),則獲取并返回第1至2字節(jié)的隨機數;再接收到一次隨機數請求中的請求長度為3字節(jié),則獲取并返回第3至5字節(jié)的隨機數,以此類推,每次返回的隨機數都非之前響應于隨機數請求而返回過的數。或者是,將每次響應隨機數請求從預設存儲區(qū)域中獲取的隨機數刪除,使預設存儲區(qū)域中剩余的隨機數均為未被獲取過的隨機數,下次接收到隨機數獲取請求時返回的隨機數為未向發(fā)起隨機數請求的應用、程序或者設備等返回過的隨機數。

另外,從預設存儲區(qū)域中獲取并返回的隨機數也可以是部分長度為未被獲取過的隨機數,以保持隨機數的隨機性。

步驟s130:若當前預設存儲區(qū)域中未被獲取過的隨機數的字節(jié)長度小于或等于預設水線值,從所述隨機數芯片獲取隨機數并存儲于所述預設存儲區(qū)域。

預設存儲區(qū)域中的隨機數長度有限,每次從預設存儲區(qū)域中獲取并返回隨機數后,預設存儲區(qū)域中未被獲取過的隨機數減少,減少到存儲區(qū)域中未被獲取過的隨機數的字節(jié)長度小于或等于預設水線值時,預設存儲區(qū)域中的隨機數可能剛好滿足在向隨機數芯片獲取隨機數的時間段內的隨機數請求,此時可以從隨機數芯片獲取隨機數,并將從隨機數芯片獲取到的隨機數存儲于預設存儲區(qū)域中。

其中,當從隨機數芯片獲取到隨機數時,若預設存儲區(qū)域中還有隨機數,可以將從隨機數芯片獲取的隨機數覆蓋預設存儲區(qū)域中原來的隨機數,使預設存儲區(qū)域中的隨機數全部更新為從隨機數芯片新獲取的隨機數。當然,若預設存儲區(qū)域中有被獲取過的隨機數以及未被獲取過的隨機數,可以將從隨機數芯片獲得的隨機數僅覆蓋被獲取過的隨機數。

另外,本實施例中,每次從隨機數芯片獲取到用于存儲到預設存儲區(qū)域的隨機數長度為該隨機數芯片所能產生的最長字節(jié)長度的隨機數,以盡量減少從隨機數芯片獲取隨機數的次數。

進一步的,在接收隨機數請求的步驟之前,還可以包括:從所述隨機數芯片獲取隨機數并存儲于所述預設存儲區(qū)域,以在保證預設存儲區(qū)域中具有隨機數的情況下響應隨機數請求。

在本實施例中,預設水線值為預先設置的字節(jié)長度值。初始設置的預設水線值可以是一個經驗值,使在每次接收到隨機數請求時均能從預設存儲區(qū)域獲取未被獲取過的長度滿足所述請求字節(jié)長度的隨機數的情況下,向隨機數芯片獲取隨機數的次數盡量少。優(yōu)選的,預設水線值的初始值可以為256字節(jié),當然,預設水線值的初始值在本實施例中并不限定。

進一步的,當當前預設存儲區(qū)域中未被獲取過的隨機數的字節(jié)長度小于或等于預設水線值,從所述隨機數芯片獲取隨機數,在從隨機數芯片獲取隨機數的過程中,仍然在接收隨機數請求,并且響應于隨機數請求,從預設存儲區(qū)域中獲取并返回長度為所述請求字節(jié)長度的隨機數,預設存儲區(qū)域中未被獲取過的隨機數字節(jié)長度持續(xù)減小。為使預設存儲區(qū)域中的隨機數能滿足每次的隨機數請求,并且盡量少地向隨機數芯片獲取隨機數,預設水線值可以隨著隨機數請求的請求字節(jié)長度變化進行更新。

具體的,當從所述隨機數芯片獲取隨機數并存儲于所述預設存儲區(qū)域時,根據當前預設存儲區(qū)域中未被獲取的隨機數字節(jié)長度增大或減小所述預設水線值。也就是說,在將從隨機數芯片獲得的隨機數后,將獲得的隨機數存儲于預存儲區(qū)域前,根據當前存儲區(qū)域中未被獲取的隨機數字節(jié)長度增大或減小所述預設水線值。

其中,當從所述隨機數芯片獲取隨機數并存儲于所述預設存儲區(qū)域時,若當前預設存儲區(qū)域中未被獲取的隨機數字節(jié)長度小于第一預設值,增大所述預設水線值,使預設存儲區(qū)域中剩余更長的隨機數用于在向隨機數芯片獲取隨機數的時間段內響應隨機數請求,盡可能保證滿足隨機數請求對隨機數的獲取。預設存儲區(qū)域中剩余的隨機數為預存儲區(qū)域中未被獲取過的隨機數。例如,第一預設值為128字節(jié),當前的預設水線值為256字節(jié),當從隨機數芯片獲取到隨機數,在將該隨機數存儲到預設存儲區(qū)域前,預設存儲區(qū)域中剩余的隨機數的字節(jié)長度小于或等于128字節(jié),則增大當前的預設水線值,也就是使預設水線值大于256字節(jié)。在本實施例中,第一預設值的具體大小并不限定。

當從所述隨機數芯片獲取隨機數并存儲于所述預設存儲區(qū)域時,若當前預設存儲區(qū)域中未被獲取的隨機數字節(jié)長度大于第二預設值,減小所述預設水線值,使預設存儲區(qū)域中剩余的隨機數既能滿足在向隨機數芯片獲取隨機數的時間段內的隨機數請求,也盡可能減少向隨機數芯片獲取隨機數的次數。在本實施例中,第二預設值的具體數值并不限定,第一預設值與第二預設值可以為相同的數值。以第二預設值為128字節(jié)為例,若當前的預設水線值為512字節(jié),當從隨機數芯片獲取到隨機數,在將該隨機數存儲到預設存儲區(qū)域前,預設存儲區(qū)域中剩余的隨機數的字節(jié)長度大于128字節(jié),則減小當前的預設水線值,也就是使預設水線值小于512。

進一步的,在本實施例中,可以設置預設水線值的水線最小值,當預設水線值減小到該水線最小值時,即使從所述隨機數芯片獲取隨機數并存儲于所述預設存儲區(qū)域時,當前預設存儲區(qū)域中未被獲取的隨機數字節(jié)長度大于第二預設值,預設水線值也不再減小。也就是說,從所述隨機數芯片獲取隨機數并存儲于所述預設存儲區(qū)域時,若當前預設存儲區(qū)域中未被獲取的隨機數字節(jié)長度大于第二預設值且所述預設水線值大于水線最小值,減小所述預設水線值。其中,水線最小值可以等于預設水線值的初始值。

進一步的,還可以設置預設水線值增大或減小的預設階梯值,預設水線值每次增加或減小的值為預設階梯值。在本實施例中,預設階梯值的具體數值并不限定,預設水線值增大的預設階梯值以及預設水線值減小的預設階梯值可以相同也可以不同。其中,該預設階梯值、第一預設值以及第二預設值可以相等,優(yōu)選的,可以等于128字節(jié)。當然,預設階梯值、第一預設值以及第二預設值也可以不同,具體可以根據實際情況設定。

綜上所述,本實施例提供的隨機數獲取方法,在預設存儲區(qū)域存儲有從隨機數芯片獲取的隨機數,每次接收到隨機數請求時,從預設存儲區(qū)域中獲取并返回隨機數,并且,當預設存儲區(qū)域中未被獲取過的隨機數字節(jié)長度小于或等于預設水線值,從隨機數芯片中獲取隨機數并存儲于預設存儲區(qū)域中,使響應隨機數請求返回的隨機數從預設存儲區(qū)域中獲取。在預設存儲區(qū)域中未被獲取過的隨機數的字節(jié)長度大于預設水線值時,不需要從隨機數芯片獲取隨機數,減少了從隨機數芯片獲取隨機數的次數,提高了處理效率。并且,可以根據當前預設存儲區(qū)域中未被獲取的隨機數字節(jié)長度增大或減小所述預設水線值,使預設存儲區(qū)域中的隨機數能滿足隨機數請求的情況下,次數盡可能少地從隨機數芯片獲取隨機數,提高了處理效率。

第二實施例

本實施例提供了一種隨機數獲取裝置200,請參見圖2,該裝置200包括:

隨機數存儲模塊210,用于在預設存儲區(qū)域存儲從隨機數芯片獲取的隨機數。請求接收模塊220,用于接收隨機數請求,所述隨機數請求中包括所要獲取的隨機數的請求字節(jié)長度。隨機數返回模塊230,用于從預設存儲區(qū)域中獲取并返回長度為所述請求字節(jié)長度的隨機數。隨機數更新模塊240,若當前預設存儲區(qū)域中未被獲取過的隨機數的字節(jié)長度小于或等于預設水線值,用于從所述隨機數芯片獲取隨機數并存儲于所述預設存儲區(qū)域。

進一步的,隨機數返回模塊230從預設存儲區(qū)域中獲取并返回的隨機數為未被獲取過的隨機數。

進一步的,在本實施例中,還可以包括水線更新模塊250,用于當從所述隨機數芯片獲取隨機數并存儲于所述預設存儲區(qū)域時,根據當前預設存儲區(qū)域中未被獲取的隨機數字節(jié)長度增大或減小所述預設水線值。

具體的,若當前預設存儲區(qū)域中未被獲取的隨機數字節(jié)長度小于第一預設值,水線更新模塊250用于增大所述預設水線值。若當前預設存儲區(qū)域中未被獲取的隨機數字節(jié)長度大于第二預設值,水線更新模塊250用于減小所述預設水線值。

進一步的,若當前預設存儲區(qū)域中未被獲取的隨機數字節(jié)長度大于第二預設值且所述預設水線值大于水線最小值,水線更新模塊250用于減小所述預設水線值。

其中,水線更新模塊250每次增加或減小預設水線值的值為預設階梯值。

第三實施例

請參見圖3,本實施例提供了一種電子設備300,所述電子設備包括存儲器310和處理器320,所述存儲器耦接到所述處理器,所述存儲器存儲指令,另外,所述存儲器中還可以建立預設存儲區(qū)域用于存儲從隨機數芯片獲取的隨機數。

其中,當存儲器存儲的指令由所述處理器執(zhí)行時使所述處理器執(zhí)行以下操作:

接收隨機數請求,所述隨機數請求中包括所要獲取的隨機數的請求字節(jié)長度;從預設存儲區(qū)域中獲取并返回長度為所述請求字節(jié)長度的隨機數,其中,所述預設存儲區(qū)域存儲有從隨機數芯片獲取的隨機數;若當前預設存儲區(qū)域中未被獲取過的隨機數的字節(jié)長度小于或等于預設水線值,從所述隨機數芯片獲取隨機數并存儲于所述預設存儲區(qū)域。

需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間以及同一個實施例中相同相似的部分互相參見即可。對于裝置類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。

在本申請所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,也可以通過其它的方式實現。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據本發(fā)明的多個實施例的裝置、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現方式中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框實際上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統來實現,或者可以用專用硬件與計算機指令的組合來實現。

另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一起形成一個獨立的部分,也可以是各個模塊單獨存在,也可以兩個或兩個以上模塊集成形成一個獨立的部分。

所述功能如果以軟件功能模塊的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發(fā)明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質。需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。

以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。

以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應所述以權利要求的保護范圍為準。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
鄂尔多斯市| 青浦区| 徐水县| 阳朔县| 临海市| 莎车县| 嘉祥县| 睢宁县| 奉贤区| 花垣县| 邢台县| 凤阳县| 沽源县| 临海市| 蕉岭县| 商丘市| 西安市| 高安市| 罗山县| 银川市| 防城港市| 同仁县| 尉犁县| 乐陵市| 东台市| 枝江市| 罗定市| 射阳县| 灵璧县| 敖汉旗| 观塘区| 新绛县| 江达县| 蒲江县| 逊克县| 玉树县| 茶陵县| 石河子市| 荣昌县| 新余市| 柏乡县|