一種客戶端、服務器、數據傳輸方法與系統的制作方法
【技術領域】
[0001]本發明涉及文件傳輸領域,特別是涉及一種客戶端、服務器、數據傳輸方法與系統。
【背景技術】
[0002]隨著科學技術的不斷發展,信息傳輸的安全問題逐漸成為眾人關注的焦點問題。現在普遍使用的ftp、pop和telnet等方法,在網絡上用明文傳送口令和數據,和可能被他人截取這些口令和數據,安全性較低。
[0003]并且,這些服務程序的安全驗證方式很容易受到“中間人”(man-1n-the-middle)這種方式的攻擊。所謂“中間人”攻擊方式,就是“中間人”冒充真正的服務器接收用戶傳給服務器的數據,然后冒充用戶把數據傳給真正的服務器,從而竊取到重要的數據,目前的傳輸方式存在較大的安全隱患。
【發明內容】
[0004]有鑒于此,本發明的主要目的在于提供一種客戶端、服務器、數據傳輸方法與系統,可以安全高效地進行數據傳輸。
[0005]為實現上述目的,本發明提供了一種數據傳輸方法,包括:
[0006]獲取第一公鑰和與所述第一公鑰相匹配的第一私鑰;
[0007]接收客戶端的連接請求,將所述第一公鑰發送至所述客戶端,接收所述客戶端發送的第二公鑰,將所述第二公鑰進行存儲;
[0008]響應所述客戶端的數據接收請求,將第一原始數據利用所述第二公鑰進行加密后的第一目標數據發送至所述客戶端;響應所述客戶端的數據發送請求,接收所述客戶端對第二原始數據利用所述第一公鑰加密后的第二目標數據,使用所述第一私鑰對所述目標數據進行解密,得到所述客戶端發送的第二原始數據。
[0009]優選地,所述獲取第一公鑰和與所述第一公鑰相匹配的第一私鑰包括:
[0010]判斷是否存儲有第一公鑰文件,如果是,則獲取第一公鑰和與所述第一公鑰相匹配的第一私鑰,否則計算得到第一公鑰和與所述第一公鑰相匹配的第一私鑰。
[0011]本發明還提供了一種服務器,包括:
[0012]第一密鑰獲取模塊,用于獲取第一公鑰和與所述第一公鑰相匹配的第一私鑰;
[0013]第一密鑰交換模塊,用于接收客戶端的連接請求,將所述第一公鑰發送至所述客戶端,接收所述客戶端發送的第二公鑰,將所述第二公鑰進行存儲;
[0014]第一數據傳輸模塊,用于響應所述客戶端的數據接收請求,將第一原始數據利用所述第二公鑰進行加密后的第一目標數據發送至所述客戶端;響應所述客戶端的數據發送請求,接收所述客戶端對第二原始數據利用所述第一公鑰加密后的第二目標數據,使用所述第一私鑰對所述目標數據進行解密,得到所述客戶端發送的第二原始數據。
[0015]優選地,所述第一密鑰獲取模塊具體用于:
[0016]判斷是否存儲有第一公鑰文件,如果是,則獲取第一公鑰和與所述第一公鑰相匹配的第一私鑰,否則計算得到第一公鑰和與所述第一公鑰相匹配的第一私鑰。
[0017]本發明還提供了一種數據傳輸方法,包括:
[0018]向服務器發送連接請求,獲取所述服務器的第一公鑰并存儲;
[0019]用于計算第二公鑰和與所述第二公鑰相匹配的第二私鑰,將所述第二公鑰發送至所述服務器;
[0020]響應用戶的數據接收請求,接收所述服務器對第一原始數據利用所述第二公鑰加密后的第一目標數據,使用所述第二私鑰對所述目標數據進行解密,得到所述服務器發送的第一原始數據;響應用戶的數據發送請求,將第二原始數據利用所述第一公鑰進行加密后的第二目標數據發送至所述服務器。
[0021 ]優選地,所述獲取所述服務器的第一公鑰并存儲包括:
[0022]接收所述服務器發送的第一公鑰,判斷是否預先存儲有所述服務器的公鑰,如果是,則確定所述第一公鑰與存儲的所述服務器的公鑰是否一致,如果是,將所述第一公鑰進行存儲。
[0023]本發明還提供了一種客戶端,包括:
[0024]第二密鑰獲取模塊,用于向服務器發送連接請求,獲取所述服務器的第一公鑰并存儲;
[0025]第二密鑰交換模塊,計算第二公鑰和與所述第二公鑰相匹配的第二私鑰,將所述第二公鑰發送至所述服務器;
[0026]第二數據傳輸模塊,用于響應用戶的數據接收請求,接收所述服務器對第一原始數據利用所述第二公鑰加密后的第一目標數據,使用所述第二私鑰對所述目標數據進行解密,得到所述服務器發送的第一原始數據;響應用戶的數據發送請求,將第二原始數據利用所述第一公鑰進行加密后的第二目標數據發送至所述服務器。
[0027]優選地,所述第二密鑰獲取模塊具體用于:
[0028]向服務器發送連接請求,接收所述服務器發送的第一公鑰,判斷是否預先存儲有所述服務器的公鑰,如果是,則確定所述第一公鑰與存儲的所述服務器的公鑰是否一致,如果是,將所述第一公鑰進行存儲。
[0029]本發明還提供了一種數據傳輸系統,包括客戶端與服務器:
[0030]所述客戶端用于:
[0031]向服務器發送連接請求,獲取所述服務器的第一公鑰并存儲;
[0032]計算第二公鑰和與所述第二公鑰相匹配的第二私鑰,將所述第二公鑰發送至所述服務器;
[0033]響應用戶的數據接收請求,接收所述服務器對第一原始數據利用所述第二公鑰加密后的第一目標數據,使用所述第二私鑰對所述目標數據進行解密,得到所述服務器發送的第一原始數據;
[0034]響應用戶的數據發送請求,將第二原始數據利用所述第一公鑰進行加密后的第二目標數據發送至所述服務器;
[0035]所述服務器用于:
[0036]獲取第一公鑰和與所述第一公鑰相匹配的第一私鑰;
[0037]接收客戶端的連接請求,將所述第一公鑰發送至所述客戶端;
[0038]接收所述客戶端發送的第二公鑰,將所述第二公鑰進行存儲;
[0039]響應所述客戶端的數據接收請求,將第一原始數據利用所述第二公鑰進行加密后的第一目標數據發送至所述客戶端;
[0040]響應所述客戶端的數據發送請求,接收所述客戶端對第二原始數據利用所述第一公鑰加密后的第二目標數據,使用所述第一私鑰對所述目標數據進行解密,得到所述客戶端發送的第二原始數據。
[0041]應用本發明提供的一種客戶端、服務器、數據傳輸方法與系統,客戶端請求連接服務器,服務器計算出第一公鑰與匹配的第一私鑰并將第一公鑰發送給客戶端,客戶端計算第二公鑰和與之匹配的第二私鑰,將所述第二公鑰發送至服務器,客戶端從服務器請求數據時,服務器對數據使用第二公鑰加密,加密后發送給客戶端,客戶端用與第二公鑰匹配的第二私鑰對數據解密,從而得到數據,當客戶端向服務器發送數據時,客戶端對要發送的數據使用第一公鑰加密,加密后發送給服務器,服務器用與第一公鑰匹配的第一私鑰對數據解密,從而得到數據,服務器和客戶端的公鑰互相共享用來加密信息,但只有自己的私鑰才可以解密,所以這樣可以有效提高數據傳輸的安全性。
【附圖說明】
[0042]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
[0043]圖1為本發明一種數據傳輸方法實施例一的流程圖;
[0044]圖2為本發明一種服務器實施例二的結構示意圖;
[0045]圖3為本發明一種數據傳輸方法實施例三的流程圖;
[0046]圖4為本發明一種客戶端實施例四的結構示意圖;
[0047]圖5為本發明一種數據傳輸系統實施例五的結構示意圖。
【具體實施方式】
[0048]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0049]實施例一:
[0050]本發明提供了一種數據傳輸方法,圖1示出了本發明數據傳輸方法實施例一的流程圖,包括:
[0051]步驟SlOl:獲取第一公鑰和與所述第一公鑰相匹配的第一私鑰;
[0052]判斷是否存儲有第一公