午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

一種基于OpenSSL的性能優(yōu)化方法及裝置與流程

文檔序號:11778404閱讀:813來源:國知局
一種基于OpenSSL的性能優(yōu)化方法及裝置與流程

本申請涉及計算機技術領域,尤其涉及一種基于openssl的性能優(yōu)化方法及裝置。



背景技術:

隨著網(wǎng)絡技術的不斷發(fā)展,信息安全已經(jīng)變得越來越重要。

為了防止信息被破解,保證信息在客戶端與服務器之間傳輸?shù)谋C苄院涂煽啃?,通常情況下會使用openssl中已經(jīng)封裝好的rsa算法來對信息進行加密,如,用戶在啟動和登陸即時通信應用的過程中需要通過rsa算法來對賬號和密碼進行加密,而在對信息進行加密的過程中,首先需要生成加密所用的密鑰。

現(xiàn)有的基于openssl的密鑰生成過程如下:接收用戶的啟動操作,加載動態(tài)鏈接庫文件,調用openssl中的heap32next函數(shù)獲取硬件、系統(tǒng)信息以及鼠標點擊等信息,根據(jù)獲取到的硬件、系統(tǒng)信息以及鼠標點擊等信息,調用openssl中的rand_poll函數(shù)收集足夠的熵,從而采用rsa算法生成加密所用的密鑰。

但是,在現(xiàn)有技術中,由于heap32next函數(shù)在windows7調用開銷為線性,因此,使得基于openssl的密鑰生成的效率較低,性能較差,增加了用戶在啟動和登錄過程中的等待時間。



技術實現(xiàn)要素:

本申請實施例提供一種基于openssl的性能優(yōu)化方法及裝置,用以解決現(xiàn)有技術中基于openssl的密鑰生成的效率較低,性能較差,增加了用戶在啟動和登錄過程中的等待時間的問題。

本申請實施例提供的一種基于openssl的性能優(yōu)化方法,包括:

客戶端接收用戶的指定操作;

加載動態(tài)鏈接庫文件;

rand_poll函數(shù)調用cocreateguid函數(shù)生成rsa加密算法需要的質數(shù);

rsa_generate_key函數(shù)根據(jù)質數(shù)生成密鑰。

優(yōu)選地,所述指定操作包括:啟動操作或者登陸操作。

優(yōu)選地,cocreateguid函數(shù)生成128比特的整數(shù),rand_poll函數(shù)判斷所述128比特的整數(shù)是否符合rsa加密算法的要求,在符合rsa加密算法的要求的情況下,rand_poll函數(shù)將該128比特的整數(shù)作為rsa加密算法需要的質數(shù)。

優(yōu)選地,所述方法還包括:將生成的密鑰保存到所述客戶端內。

優(yōu)選地,所述方法還包括:所述客戶端在建立tcp連接時,在客戶端內查找密鑰,使用該密鑰加密數(shù)據(jù)。

本申請實施例提供的一種基于openssl的性能優(yōu)化裝置,包括:

接收模塊,用于所述裝置接收用戶的指定操作;

加載模塊,用于加載動態(tài)鏈接庫文件;

質數(shù)生成模塊,用于rand_poll函數(shù)調用cocreateguid函數(shù)生成rsa加密算法需要的質數(shù);

密鑰生成模塊,用于rsa_generate_key函數(shù)根據(jù)質數(shù)生成密鑰。

優(yōu)選地,所述指定操作包括:啟動操作或者登陸操作。

優(yōu)選地,所述質數(shù)生成模塊具體用于,cocreateguid函數(shù)生成128比特的整數(shù),rand_poll函數(shù)判斷所述128比特的整數(shù)是否符合rsa加密算法的要求,在符合rsa加密算法的要求的情況下,rand_poll函數(shù)將該128比特的整數(shù)作為rsa加密算法需要的質數(shù)。

優(yōu)選地,所述裝置還包括:存儲模塊,用于將生成的密鑰保存到所述裝置內。

優(yōu)選地,所述裝置還包括:查找模塊,用于所述裝置在建立tcp連接時,在裝置內查找密鑰,使用該密鑰加密數(shù)據(jù)。

本申請實施例提供一種基于openssl的性能優(yōu)化方法及裝置,該方法包括:客戶端接收用戶的指定操作,加載動態(tài)鏈接庫文件,rand_poll函數(shù)調用cocreateguid函數(shù)生成rsa加密算法需要的質數(shù),rsa_generate_key函數(shù)根據(jù)質數(shù)生成密鑰。通過上述方法,由于cocreateguid函數(shù)的執(zhí)行效率遠高于heap32next函數(shù)的執(zhí)行效率,因此,將cocreateguid函數(shù)替換掉heap32next函數(shù)可以有效的提高密鑰生成的效率以及性能,并且有效的減少用戶在啟動和登陸過程中的等待時間。

附圖說明

此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:

圖1為本申請實施例提供的基于openssl的性能優(yōu)化的過程示意圖;

圖2為本申請實施例提供的基于openssl的性能優(yōu)化裝置的結構示意圖;

圖3為本申請實施例提供的基于openssl的性能優(yōu)化系統(tǒng)組成結構框圖。

具體實施方式

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

圖1為本申請實施例提供的基于openssl的性能優(yōu)化過程,具體包括以下步驟:

s101:接收用戶的指定操作。

在實際應用中,為了防止信息被破解,保證信息在客戶端與服務器之間傳輸?shù)谋C苄院涂煽啃裕枰獙π畔⑦M行加密,而在對信息進行加密的過程中,首先需要生成加密所用的密鑰,如,用戶在啟動和登陸即時通信應用的過程中需要通過rsa算法來對賬號和密碼進行加密。

進一步的,本申請在生成加密所用的密鑰的過程中,首先需要接收用戶的指定操作,接收用戶的指定操作可以由客戶端完成。

在本申請中,所述指定操作主要是觸發(fā)密鑰生成的操作,可以是啟動操作,也可以是登陸操作,當然也可以是其他操作,具體是什么操作可根據(jù)實際情況來設定,如,假設啟動即時通信應用后需要生成密鑰,則指定操作就為啟動操作,假設登陸即時通信應用后需要生成密鑰,則指定操作就為登陸操作,假設點擊某應用的發(fā)送功能時需要生成密鑰,則指定操作就為點擊發(fā)送操作。

s102:加載動態(tài)鏈接庫文件。

由于在實際應用中,應用程序在運行過程中會將所使用的函數(shù)的調用路徑存儲在動態(tài)鏈接庫文件中,因此,在本申請中,當客戶端接收用戶的指定操作后,客戶端會加載動態(tài)鏈接庫文件。

在此需要說明的是,位于客戶端中的即時通信應用在啟動和登錄的過程中均會加載動態(tài)鏈接庫文件。

s103:rand_poll函數(shù)調用cocreateguid函數(shù)生成rsa加密算法需要的質數(shù)。

s104:rsa_generate_key函數(shù)根據(jù)質數(shù)生成密鑰。

進一步的,當加載完成動態(tài)鏈接庫文件后,客戶端調用rsa_generate_key函數(shù)來生成密鑰。

具體的,rsa_generate_key函數(shù)調用rand_poll函數(shù)來生成密鑰所需的質數(shù)。

而在生成密鑰所需的質數(shù)的過程中,rand_poll函數(shù)調用cocreateguid函數(shù)生成rsa加密算法需要的質數(shù),具體的,cocreateguid函數(shù)生成128比特的整數(shù),rand_poll函數(shù)判斷所述128比特的整數(shù)是否符合rsa加密算法的要求,在符合rsa加密算法的要求的情況下,rand_poll函數(shù)將該128比特的整數(shù)作為rsa加密算法需要的質數(shù),之后再調用rsa_generate_key函數(shù)根據(jù)質數(shù)生成密鑰。

通過上述方法,由于cocreateguid函數(shù)的執(zhí)行效率遠高于heap32next函數(shù)的執(zhí)行效率,因此,將cocreateguid函數(shù)替換掉heap32next函數(shù)可以有效的提高密鑰生成的效率以及性能,并且有效的減少用戶在啟動和登陸過程中的等待時間。

進一步的,通過使用上述方法,在測試機上進行實際測試的過程中所得到的測試結果,并根據(jù)測試結果,可以得出以下結論:在windows7系統(tǒng)中使用本申請所涉及的方法效果優(yōu)化最明顯,也就是說,能夠大幅提高秘鑰生成的效率以及性能,并有效的減少用戶在啟動和登錄過程中的等待時間,另外,在xp系統(tǒng)中也能夠起到明顯的優(yōu)化效果。

在此需要說明的是,為了能夠獲取更準確的測試數(shù)據(jù),因此,在本申請中,在實際測試的過程中為同一場景測試10組,相應的結果為10次中去掉一次最高以及一次最低后的平均值。

在此,本申請也給出了使用上述方法進行實際測試時所得到的兩個測試結果,假設測試場景為yy即時通信應用的啟動和登錄,具體如下:

測試結果1:

系統(tǒng):windows7sp1開發(fā)機,vmare虛擬機裝win7結果類似;

配置:i5-23002.8gb雙核4gb

使用現(xiàn)有技術的總登錄時間:4964使用本申請技術的總時間:3423

表1

測試結果2:

系統(tǒng):windowsxpsp3

配置:i5-23002.8gb雙核4gb

使用現(xiàn)有技術的總登錄時間:4216使用本申請技術的總時間:3992

表2

進一步的,由于在實際應用中,應用在啟動或登錄以及后續(xù)的信息發(fā)送接收的過程中,不僅僅只進行一次密鑰的生成過程,通常是多次,也就是說,只要需要使用密鑰進行加密,就會進行一次密鑰生成,如,yy即時通信應用每次在啟動的過程中都會有好幾個動態(tài)鏈接庫文件分別靜態(tài)鏈接openssl,每個動態(tài)鏈接庫文件都會調用rsa_generate_key函數(shù)生成一次密鑰,后續(xù),客戶端在與服務器所建立的tcp鏈接時,也會每個tcp鏈接都會生成一個密鑰,這樣會嚴重的增加用戶的等待時間,因此,在本申請中,可將生成的第一次生成的密鑰保存到客戶端內,后續(xù),當需要密鑰來對信息進行加密時,可先在客戶端中查找,如果客戶端中存在密鑰時,可直接使用該密鑰加密數(shù)據(jù),如果沒有在客戶端中查找到密鑰,則使用上述步驟s101~步驟s104生成密鑰,并將生成的密鑰保存到客戶端內。

以上為本申請實施例提供的基于openssl的性能優(yōu)化方法,基于同樣的思路,本申請實施例還提供一種基于openssl的性能優(yōu)化裝置。

如圖2所示,本申請實施例提供的一種基于openssl的性能優(yōu)化裝置包括:

接收模塊201,用于所述裝置接收用戶的指定操作;

加載模塊202,用于加載動態(tài)鏈接庫文件;

質數(shù)生成模塊203,用于rand_poll函數(shù)調用cocreateguid函數(shù)生成rsa加密算法需要的質數(shù);

密鑰生成模塊204,用于rsa_generate_key函數(shù)根據(jù)質數(shù)生成密鑰。

所述指定操作包括:啟動操作或者登陸操作。

所述質數(shù)生成模塊203具體用于,cocreateguid函數(shù)生成128比特的整數(shù),rand_poll函數(shù)判斷所述128比特的整數(shù)是否符合rsa加密算法的要求,在符合rsa加密算法的要求的情況下,rand_poll函數(shù)將該128比特的整數(shù)作為rsa加密算法需要的質數(shù)。

所述裝置還包括:

存儲模塊205,用于將生成的密鑰保存到所述裝置內。

所述裝置還包括:

查找模塊206,用于所述裝置在建立tcp連接時,在裝置內查找密鑰,使用該密鑰加密數(shù)據(jù)。

另外,本申請實施例還提供一種基于openssl的性能優(yōu)化系統(tǒng),該系統(tǒng)包括:

處理器、計算機可讀存儲器、和計算機可讀存儲介質;

程序,用于客戶端接收用戶的指定操作,加載動態(tài)鏈接庫文件,rand_poll函數(shù)調用cocreateguid函數(shù)生成rsa加密算法需要的質數(shù),rsa_generate_key函數(shù)根據(jù)質數(shù)生成密鑰。

所述程序存儲在所述計算機可讀存儲介質上,用于由所述處理器經(jīng)由所述計算機可讀存儲器執(zhí)行。

所述處理器、計算機可讀存儲器以及所述計算機可讀存儲介質可以用圖3中的處理器、內部存儲器、外部存儲器來實現(xiàn)。

其中,圖3為基于openssl的性能優(yōu)化系統(tǒng)組成結構框圖,其中示出了基于openssl的性能優(yōu)化系統(tǒng)的主要部件。圖3中,處理器310、內部存儲器305、總線橋320以及網(wǎng)絡接口315接入系統(tǒng)總線340,總線橋320用于橋接系統(tǒng)總線340和i/o總線345,i/o接口接入i/o總線345,usb接口以及外部存儲器與i/o接口連接。圖3中,處理器310可以為一個或多個處理器,每個處理器可以具有一個或者多個處理器內核;內部存儲器305為易失性存儲器,例如寄存器、緩存器、各種類型的隨機存取存儲器等;在基于openssl的性能優(yōu)化系統(tǒng)運行的時候,內部存儲器35中的數(shù)據(jù)包括操作系統(tǒng)和應用程序;網(wǎng)絡接口315可以為以太網(wǎng)接口、光纖接口等;系統(tǒng)總線340可以用來傳送數(shù)據(jù)信息、地址信息、以及控制信息;總線橋320可以用來進行協(xié)議轉換,將系統(tǒng)總線協(xié)議轉換為i/o協(xié)議或者將i/o協(xié)議轉換為系統(tǒng)總線協(xié)議以實現(xiàn)數(shù)據(jù)傳輸;i/o總線345用來數(shù)據(jù)信息和控制信息,還可以總線終結電阻或電路來降低信號反射干擾;i/o接口330主要與各種外部設備連接,例如鍵盤、鼠標、傳感器等等,閃存可以通過usb接口接入i/o總線,外部存儲器為非易失性存儲器,例如硬盤、光盤等。在基于openssl的性能優(yōu)化系統(tǒng)運行之后,處理器可以將存儲于外部存儲其中的數(shù)據(jù)讀取到內部存儲器中,并對內部存儲其中的系統(tǒng)指令進行處理,完成操作系統(tǒng)以及應用程序的功能。該示例基于openssl的性能優(yōu)化系統(tǒng)可以為位于臺式機、筆記本電腦、平板電腦、智能手機等。

優(yōu)選地,所述指定操作包括:啟動操作或者登陸操作。

優(yōu)選地,所述程序還用于,cocreateguid函數(shù)生成128比特的整數(shù),rand_poll函數(shù)判斷所述128比特的整數(shù)是否符合rsa加密算法的要求,在符合rsa加密算法的要求的情況下,rand_poll函數(shù)將該128比特的整數(shù)作為rsa加密算法需要的質數(shù)。

優(yōu)選地,所述程序還用于,將生成的密鑰保存到所述客戶端內。

優(yōu)選地,所述程序還用于,所述客戶端在建立tcp連接時,在客戶端內查找密鑰,使用該密鑰加密數(shù)據(jù)。

在一個典型的配置中,計算設備包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡接口和內存。

內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內存等形式,如只讀存儲器(rom)或閃存(flashram)。內存是計算機可讀介質的示例。

計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結構、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質的例子包括,但不限于相變內存(pram)、靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括暫存電腦可讀媒體(transitorymedia),如調制的數(shù)據(jù)信號和載波。

還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。

本領域技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。

以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的權利要求范圍之內。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1