本申請涉及計算機技術領域,具體涉及互聯(lián)網技術領域,尤其涉及數據交換系統(tǒng)、方法和裝置。
背景技術:
隨著大數據時代的到來,數據的交換與共享也變得越來越重要?,F有的數據交換系統(tǒng)中通常會設立數據交換中心。在數據交換系統(tǒng)進行數據交換時,數據交換中心對交換過程進行記錄、維護等操作。
然而,數據交換系統(tǒng)中設立數據交換中心,并且所有的數據交換過程均需要數據交換中心提供支持,這樣就導致數據交換系統(tǒng)的建設與維護成本較高。
技術實現要素:
本申請的目的在于提出一種改進的數據交換系統(tǒng)、方法和裝置,來解決以上背景技術部分提到的技術問題。
第一方面,本申請實施例提供了一種數據交換系統(tǒng),該系統(tǒng)包括第一服務器和第二服務器;第一服務器,用于基于需求信息,獲取待交換數據標識;對待交換數據標識進行存儲;獲取待交換數據標識的存儲地址;對待交換數據標識的存儲地址進行加密,生成第一加密存儲地址;第二服務器,用于從第一服務器獲取第一加密存儲地址;對第一加密存儲地址進行解密,獲取待交換數據標識的存儲地址;基于待交換數據標識的存儲地址,獲取待交換數據標識;基于待交換數據標識,從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據,以使第一服務器從第二服務器獲取待交換數據,其中,數據集合包括數據和數據標識。
在一些實施例中,第二服務器,還用于:對待交換數據進行存儲;獲取待交換數據的存儲地址;對待交換數據的存儲地址進行加密,生成第二加密存儲地址;第一服務器,還用于:從第二服務器獲取第二加密存儲地址;對第二加密存儲地址進行解密,獲取待交換數據的存儲地址;基于待交換數據的存儲地址,獲取待交換數據。
在一些實施例中,第一服務器,還用于:生成對稱密鑰;利用對稱密鑰對待交換數據標識的存儲地址進行加密,生成第一密文;基于預設對應關系,將第一密文映射成第一加密存儲地址。
在一些實施例中,第一服務器,還用于:利用從第二服務器預先獲取的公鑰對對稱密鑰進行加密,生成加密對稱密鑰,其中,第二服務器中存儲有公鑰和與公鑰相對應的私鑰。
在一些實施例中,第二服務器,還用于:從第一服務器獲取加密對稱密鑰和第一加密存儲地址;利用與公鑰相對應的私鑰對加密對稱密鑰進行解密,獲取對稱密鑰;利用對稱密鑰和預設對應關系對第一加密存儲地址進行解密,獲取待交換數據標識的存儲地址。
在一些實施例中,第二服務器,還用于:利用對稱密鑰對待交換數據的存儲地址進行加密,生成第二密文;基于預設對應關系,將第二密文映射成第二加密存儲地址。
在一些實施例中,第一服務器,還用于:從第二服務器獲取第二加密存儲地址;利用對稱密鑰和預設對應關系對第二加密存儲地址進行解密,獲取待交換數據的存儲地址;基于待交換數據的存儲地址,獲取待交換數據。
在一些實施例中,第一服務器,還用于:對與待交換數據相對應的資源進行封存;在接收到第二服務器發(fā)送的待交換數據之后,釋放與待交換數據相對應的資源,以使第二服務器獲取與待交換數據相對應的資源。
第二方面,本申請實施例提供了一種用于第一服務器的數據交換方法,該方法包括:基于需求信息,獲取待交換數據標識;對待交換數據標識進行存儲;獲取待交換數據標識的存儲地址;對待交換數據標識的存儲地址進行加密,生成第一加密存儲地址,以使第二服務器從第一服務器獲取第一加密存儲地址,對第一加密存儲地址進行解密,獲取待交換數據標識的存儲地址,基于待交換數據標識的存儲地址,獲取待交換數據標識,基于待交換數據標識,從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據,其中,數據集合包括數據和數據標識;從第二服務器獲取待交換數據。
第三方面,本申請實施例提供了一種用于第一服務器的數據交換裝置,該裝置包括:第一獲取單元,配置用于基于需求信息,獲取待交換數據標識;存儲單元,配置用于對待交換數據標識進行存儲;第二獲取單元,配置用于獲取待交換數據標識的存儲地址;加密單元,配置用于對待交換數據標識的存儲地址進行加密,生成第一加密存儲地址,以使第二服務器從第一服務器獲取第一加密存儲地址,對第一加密存儲地址進行解密,獲取待交換數據標識的存儲地址,基于待交換數據標識的存儲地址,獲取待交換數據標識,基于待交換數據標識,從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據,其中,數據集合包括數據和數據標識;第三獲取單元,配置用于從第二服務器獲取待交換數據。
第四方面,本申請實施例提供了一種服務器,該服務器包括:一個或多個處理器;存儲裝置,用于存儲一個或多個程序;當一個或多個程序被一個或多個處理器執(zhí)行,使得一個或多個處理器實現如第二方面中實現方式描述的方法。
第五方面,本申請實施例提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執(zhí)行時實現如第二方面中實現方式描述的方法。
本申請實施例提供的數據交換系統(tǒng)、方法和裝置,首先,第一服務器基于需求信息獲取待交換數據標識,并對待交換數據標識進行存儲;之后,第一服務器對待交換數據標識的存儲地址進行加密,生成第一加密存儲地址;而后,第二服務器從第一服務器獲取第一加密存儲地址,并對其進行解密以獲取待交換數據標識的存儲地址;然后,第二服務器基于待交換數據標識的存儲地址,獲取待交換數據標識;最后,第二服務器基于待交換數據標識從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據,以使第一服務器從第二服務器獲取待交換數據。數據交換系統(tǒng)中省去數據交換中心,第一服務器與第二服務器之間直接進行點對點的數據交換,從而節(jié)省了數據交換系統(tǒng)的建設與維護成本。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1是根據本申請實施例的數據交換系統(tǒng)的示例性系統(tǒng)架構圖;
圖2是根據本申請的數據交換系統(tǒng)的一個實施例的時序圖;
圖3是根據本申請的數據交換系統(tǒng)的又一個實施例的時序圖;
圖4是根據本申請的用于第一服務器的數據交換方法的一個實施例的流程圖;
圖5是根據本申請的用于第一服務器的數據交換裝置的一個實施例的結構示意圖;
圖6是適于用來實現本申請實施例的服務器的計算機系統(tǒng)的結構示意圖。
具體實施方式
下面結合附圖和實施例對本申請作進一步的詳細說明??梢岳斫獾氖牵颂幩枋龅木唧w實施例僅僅用于解釋相關發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關發(fā)明相關的部分。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本申請。
圖1示出了根據本申請實施例的數據交換系統(tǒng)的示例性系統(tǒng)架構100。
如圖1所示,系統(tǒng)架構100可以包括終端設備101,第一服務器102,第二服務器103和網絡104、105。網絡104用以在終端設備101和第一服務器102之間提供通信鏈路的介質。網絡105用以在第一服務器102和第二服務器103之間提供通信鏈路的介質。網絡104、105可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。
終端設備101可以通過網絡104與第一服務器102交互,以接收或發(fā)送消息等。例如終端設備101可以通過網絡104向第一服務器102發(fā)送需求信息。其中,終端設備101可以是各種電子設備,包括但不限于智能手機、平板電腦、膝上型便攜計算機和臺式計算機等等。
第一服務器102可以通過網絡105與第二服務器103交互,以接收或發(fā)送消息等。例如,第一服務器102可以對待交換數據標識進行存儲,并通過網絡105將第一加密存儲地址(加密后的待交換數據標識的存儲地址)發(fā)送至第二服務器103;第二服務器103可以首先對第一加密存儲地址進行分析等處理,以獲取待交換數據標識;然后,基于待交換數據標識從預先存儲的數據集合中查找出待交換數據,并通過網絡105將待交換數據發(fā)送至第一服務器102。
需要說明的是,本申請實施例所提供的用于第一服務器的數據交換方法一般由第一服務器102執(zhí)行,相應地,用于第一服務器的數據交換裝置一般設置于第一服務器102中。
應該理解,圖1中的終端設備、第一服務器、第二服務器和網絡的數目僅僅是示意性的。根據實現需要,可以具有任意數目的終端設備、第一服務器、第二服務器和網絡。
繼續(xù)參考圖2,其示出了根據本申請的數據交換系統(tǒng)的一個實施例的時序200。
本實施例中的數據交換系統(tǒng)可以包括第一服務器(例如圖1所示的第一服務器102)和第二服務器(例如圖1所示的第二服務器103)。其中,第一服務器,用于基于需求信息,獲取待交換數據標識;對待交換數據標識進行存儲;獲取待交換數據標識的存儲地址;對待交換數據標識的存儲地址進行加密,生成第一加密存儲地址。第二服務器,用于從第一服務器獲取第一加密存儲地址;對第一加密存儲地址進行解密,獲取待交換數據標識的存儲地址;基于待交換數據標識的存儲地址,獲取待交換數據標識;基于待交換數據標識,從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據,以使第一服務器從第二服務器獲取待交換數據,其中,數據集合包括數據和數據標識。
如圖2所示,在步驟201中,第一服務器基于需求信息,獲取待交換數據標識。
在本實施例中,第一服務器(例如圖1所示的第一服務器102)可以通過有線連接方式或者無線連接方式從客戶端(例如圖1所示的終端設備101)獲取需求信息,并從需求信息中提取出待交換數據標識。其中,需求信息可以包括待交換數據標識。數據標識可以由文字、字母、數字、符號等組成,用來唯一識別數據。待交換數據標識可以用來唯一標識待交換數據。作為示例,數據標識可以包括數據名和/或數據索引。
在本實施例中,第二服務器(例如圖1所示的第二服務器103)可以預先發(fā)布第二服務器中存儲的、可交換的數據的數據標識。用戶可以查看這些數據標識,并根據自己的需求,從數據標識中查找出待交換數據標識。然后,用戶可以向第一服務器發(fā)送包括待交換數據標識的需求信息。最后,第一服務器可以對需求信息進行分析,從中提取出待交換數據標識。
在這里,第二服務器可以通過各種方式發(fā)布數據標識。例如,第二服務器可以將數據標識寫入智能合約中,并發(fā)布該智能合約。這樣,用戶可以查看該智能合約,并根據自己的需求,從該智能合約中查找出待交換數據標識。其中,智能合約是一套以數字形式定義的承諾(promises),包括合約參與方(例如第一服務器和第二服務器)可以在上面執(zhí)行這些承諾的協(xié)議。智能合約本質上是可執(zhí)行的計算機代碼,其工作原理類似于其它計算機程序的if-then(如果-則)語句。智能合約只是以這種方式與真實世界的資產進行交互。當一個預先編好的條件被觸發(fā)時,智能合約執(zhí)行相應的合同條款。
在本實施例的一些可選的實現方式中,需求信息中還可以包括與待交換數據相對應的資源值,第一服務器可以對與待交換數據相對應的資源進行封存。其中,資源可以是虛擬貨幣,即一種p2p(點對點)形式的數字貨幣。點對點的傳輸意味著一個去中心化的支付系統(tǒng)。資源值可以是虛擬貨幣的金額。具體地,第二服務器在發(fā)布數據標識的同時,還可以發(fā)布與數據相對應的資源值。用戶可以在獲取待交換數據標識的同時,獲取與待交換數據相對應的資源值。然后用戶可以將向第一服務器發(fā)送包括待交換數據標識和與待交換數據相對應的資源值的需求信息。最后,第一服務器可以對需求信息進行分析,從中提取出與待交換數據相對應的資源值,并對與待交換數據相對應的資源進行封存。作為示例,第一服務器可以將與待交換數據相對應的資源封存在從第二服務器所獲取到的智能合約中。需要說明的是,在第一服務器對封存的資源釋放之前,第一服務器與第二服務器均不能對封存的資源進行操作。
在步驟202中,第一服務器對待交換數據標識進行存儲。
在本實施例中,基于步驟201中所獲取到的待交換數據標識,第一服務器可以對待交換數據標識進行存儲。這里,第一服務器可以將待交換數據標識存儲在本地或者第三方服務器中。通常情況下,為了減少數據交換系統(tǒng)的建設與維護成本,第一服務器可以將待交換數據標識存儲在本地。作為示例,待交換數據標識可以以文本文件的形式存儲在第一服務器本地。
在步驟203中,第一服務器獲取待交換數據標識的存儲地址。
在本實施例中,在第一服務器對待交換數據標識進行存儲之后,第一服務器可以獲取待交換數據標識的存儲地址。其中,存儲地址可以是待交換數據標識在第一服務器中的具體存儲路徑。
在步驟204中,第一服務器對待交換數據標識的存儲地址進行加密,生成第一加密存儲地址。
在本實施例中,基于步驟203中所獲取到的待交換數據標識的存儲地址,第一服務器可以對待交換數據標識的存儲地址進行加密,生成第一加密存儲地址。
需要說明的是,第一服務器可以采用各種可逆加密算法對待交換數據標識的存儲地址進行加密,可逆加密算法是目前廣泛研究和應用的公知技術,在此不再贅述。
在步驟205中,第二服務器從第一服務器獲取第一加密存儲地址。
在本實施例中,基于步驟204中所生成的第一加密存儲地址,第二服務器可以從第一服務器獲取第一加密存儲地址。
在本實施例的一些可選的實現方式中,在生成第一加密存儲地址之后,第一服務器可以直接將第一加密存儲地址發(fā)送至第二服務器。
在本實施例的一些可選的實現方式中,在生成第一加密存儲地址之后,第一服務器可以對第一加密存儲地址進行存儲,并將第一加密存儲地址的存儲地址發(fā)送至第二服務器,以使第二服務器根據第一加密存儲地址的存儲地址獲取第一加密存儲地址。作為示例,在生成第一加密存儲地址之后,第一服務器可以將第一加密存儲地址寫入從第二服務器所獲取到的智能合約中,并對該智能合約進行本地存儲。然后,第一服務器可以將該智能合約的存儲地址發(fā)送至第二服務器。最后,第二服務器可以根據該智能合約的存儲地址從第一服務器獲取該智能合約,并從該智能合約中提取出第一加密存儲地址。
在步驟206中,第二服務器對第一加密存儲地址進行解密,獲取待交換數據標識的存儲地址。
在本實施例中,基于步驟205中所獲取到的第一加密存儲地址,第二服務器可以對第一加密存儲地址進行解密,以獲取待交換數據標識的存儲地址。這里,第二服務器可以采用與第一服務器對待交換數據標識的存儲地址進行加密的加密算法相對應的解密算法對第一加密存儲地址進行解密,即可獲得待交換數據標識的存儲地址。
在步驟207中,第二服務器基于待交換數據標識的存儲地址,獲取待交換數據標識。
在本實施例中,基于步驟206中所獲取到的待交換數據標識的存儲地址,第二服務器可以從第一服務器獲取待交換數據標識。
在步驟208中,第二服務器基于待交換數據標識,從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據。
在本實施例中,基于步驟207中所獲取到的待交換數據標識,第二服務器可以從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據。其中,數據集合可以包括數據和數據標識。
在本實施例中,數據集合可以以各種方式存儲在第二服務器本地。例如,數據集合可以以文本文件的形式存儲在第二服務器中。作為示例,數據集合可以以數據表的形式存儲在第二服務器中。其中,數據表中的每行都有不同的數據索引,數據表的每列都有不同的數據名。這里,待交換數據標識可以是待交換數據索引和待交換數據名,第二服務器可以首先根據待交換數據索引在存儲數據集合的數據表中查找到待交換數據所在的行;然后根據待交換數據名在待交換數據所在的行中查找到待交換數據。
在步驟209中,第一服務器從第二服務器獲取待交換數據。
在本實施例中,基于步驟208中所獲取到的待交換數據,第一服務器可以從第二服務器獲取待交換數據。
在本實施例的一些可選的實現方式中,在獲取到待交換數據之后,第二服務器可以直接將待交換數據發(fā)送至第一服務器。
在本實施例的一些可選的實現方式中,在獲取到待交換數據之后,首先,第二服務器可以對待交換數據進行存儲;之后,第二服務器可以獲取待交換數據的存儲地址,并對待交換數據的存儲地址進行加密,生成第二加密存儲地址;然后,第一服務器可以從第二服務器獲取第二加密存儲地址,并對第二加密存儲地址進行解密,獲取待交換數據的存儲地址;最后,第一服務器可以基于待交換數據的存儲地址,從第二服務器獲取待交換數據。作為示例,在生成第二加密存儲地址之后,首先,第二服務器可以將第二加密存儲地址寫入從第一服務器所獲取到的智能合約中,并對該智能合約進行本地存儲。然后,第二服務器可以將智能合約的存儲地址發(fā)送至第一服務器。最后,第一服務器可以從第二服務器獲取該智能合約,并從該智能合約中提取出第二加密存儲地址。
在本實施例的一些可選的實現方式中,第一服務器可以對與待交換數據相對應的資源進行封存,并在接收到第二服務器發(fā)送的待交換數據之后,釋放與待交換數據相對應的資源,以使第二服務器獲取與待交換數據相對應的資源。作為示例,第一服務器可以將與待交換數據相對應的資源封存在從第二服務器所獲取到的智能合約中,在接收到第二服務器發(fā)送的待交換數據之后,可以觸發(fā)第一服務器執(zhí)行封存有與待交換數據相對應的資源的智能合約,以實現將與待交換數據相對應的資源發(fā)送至第二服務器。
本申請實施例提供的數據交換系統(tǒng),首先,第一服務器基于需求信息獲取待交換數據標識,并對待交換數據標識進行存儲;之后,第一服務器對待交換數據標識的存儲地址進行加密,生成第一加密存儲地址;而后,第二服務器從第一服務器獲取第一加密存儲地址,并對其進行解密以獲取待交換數據標識的存儲地址;然后,第二服務器基于待交換數據標識的存儲地址,獲取待交換數據標識;最后,第二服務器基于待交換數據標識從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據,以使第一服務器從第二服務器獲取待交換數據。數據交換系統(tǒng)中省去數據交換中心,第一服務器與第二服務器之間直接進行點對點的數據交換,從而節(jié)省了數據交換系統(tǒng)的建設與維護成本。
進一步參考圖3,其示出了根據本申請的數據交換系統(tǒng)的又一個實施例的時序300。
本實施例中的數據交換系統(tǒng)可以包括第一服務器(例如圖1所示的第一服務器102)和第二服務器(例如圖1所示的第二服務器103)。其中,第一服務器,用于基于需求信息,獲取待交換數據標識;對待交換數據標識進行存儲;獲取待交換數據標識的存儲地址;生成對稱密鑰;利用對稱密鑰對待交換數據標識的存儲地址進行加密,生成第一密文;基于預設對應關系,將第一密文映射成第一加密存儲地址;利用從第二服務器預先獲取的公鑰對對稱密鑰進行加密,生成加密對稱密鑰,其中,第二服務器中存儲有公鑰和與公鑰相對應的私鑰。第二服務器,用于從第一服務器獲取加密對稱密鑰和第一加密存儲地址;利用與公鑰相對應的私鑰對加密對稱密鑰進行解密,獲取對稱密鑰;利用對稱密鑰和預設對應關系對第一加密存儲地址進行解密,獲取待交換數據標識的存儲地址;基于待交換數據標識的存儲地址,獲取待交換數據標識;基于待交換數據標識,從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據;對待交換數據進行存儲;獲取待交換數據的存儲地址;利用對稱密鑰對待交換數據的存儲地址進行加密,生成第二密文;基于預設對應關系,將第二密文映射成第二加密存儲地址。第一服務器,還用于:從第二服務器獲取第二加密存儲地址;利用對稱密鑰和預設對應關系對第二加密存儲地址進行解密,獲取待交換數據的存儲地址;基于待交換數據的存儲地址,獲取待交換數據。
如圖3所示,在步驟301中,第一服務器基于需求信息,獲取待交換數據標識。
在本實施例中,第一服務器(例如圖1所示的第一服務器102)可以通過有線連接方式或者無線連接方式從客戶端(例如圖1所示的終端設備101)獲取需求信息,并從需求信息中提取出待交換數據標識。其中,需求信息可以包括待交換數據標識。數據標識可以由文字、字母、數字、符號等組成,用來唯一識別數據。待交換數據標識可以用來唯一標識待交換數據。作為示例,數據標識可以包括數據名和/或數據索引。
在步驟302中,第一服務器對待交換數據標識進行存儲。
在本實施例中,基于步驟301中所獲取到的待交換數據標識,第一服務器可以對待交換數據標識進行存儲。這里,第一服務器可以將待交換數據標識存儲在本地或者第三方服務器中。通常情況下,為了減少數據交換系統(tǒng)的建設與維護成本,第一服務器可以將待交換數據標識存儲在本地。作為示例,待交換數據標識可以以文本文件的形式存儲在第一服務器本地。
在步驟303中,第一服務器獲取待交換數據標識的存儲地址。
在本實施例中,在第一服務器對待交換數據標識進行存儲之后,第一服務器可以獲取待交換數據標識的存儲地址。其中,存儲地址可以是待交換數據標識在第一服務器中的具體存儲路徑。
在步驟304中,第一服務器生成對稱密鑰。
在本實施例中,第一服務器可以生成對稱密鑰。其中,對稱密鑰可以用于對待交換數據標識的存儲地址或待交換數據的存儲地址進行加密。對稱密鑰加密又叫專用密鑰加密,即發(fā)送和接收數據的雙方必使用相同的密鑰對明文進行加密和解密運算。對稱密鑰加密算法可以包括但不限于des(dataencryptionstandard,數據加密標準)、3des(tripledes,三重數據加密標準)、idea(internationaldataencryptionalgorithm,國際數據加密算法)、feal(fastdataenciphermentalgorithm,分組加密算法)等。
在步驟305中,第一服務器利用對稱密鑰對待交換數據標識的存儲地址進行加密,生成第一密文。
在本實施例中,基于步驟304中所生成的對稱密鑰,第一可以利用對稱密鑰對待交換數據標識的存儲地址進行加密,以生成第一密文。
在步驟306中,第一服務器基于預設對應關系,將第一密文映射成第一加密存儲地址。
在本實施例中,第一服務器可以基于預設對應關系,將第一密文映射成第一加密存儲地址。
在本實施例的一些可選的實現方式中,第一服務器中可以預先存儲分布式哈希表,當第一服務器將第一密文輸入至該分布式哈希表時,該分布式哈希表可以根據對應的映射關系,將第一密文映射成第一加密存儲地址。其中,分布式哈希表是一種數據結構,它把key(鍵)和value(值)用某種方式對應起來。具體地,分布式哈希表可以使用函數(例如hash函數)把一個key值映射到一個value上,即hash(key)=value。這樣就可以把一個key值同某個value對應起來。其中,hash函數又叫做散列函數,其可以把任意長度的輸入(又叫做預映射,pre-image),通過散列算法,變換成固定長度的輸出,該輸出就是散列值。
在步驟307中,第一服務器利用從第二服務器預先獲取的公鑰對對稱密鑰進行加密,生成加密對稱密鑰。
在本實施例中,基于從第二服務器(例如圖1所示的第二服務器103)預先獲取的公鑰(publickey),第一服務器可以利用該公鑰對對稱密鑰進行加密,生成加密對稱密鑰。其中,第二服務器中存儲有公鑰和與公鑰相對應的私鑰(privatekey),并在發(fā)布數據標識的同時,發(fā)布公鑰。具體地,公鑰與私鑰是通過一種算法得到的一個密鑰對(即一個公鑰和一個私鑰),公鑰是密鑰對中公開的部分,私鑰則是非公開的部分。公鑰通常用于加密會話密鑰、驗證數字簽名,或加密可以用相應的私鑰解密的數據。通過這種算法得到的密鑰對能保證在世界范圍內是唯一的。使用這個密鑰對的時候,如果用其中一個密鑰加密一段數據,必須用另一個密鑰解密。比如用公鑰加密數據就必須用私鑰解密,如果用私鑰加密也必須用公鑰解密,否則解密將不會成功。
在步驟308中,第二服務器從第一服務器獲取加密對稱密鑰和第一加密存儲地址。
在本實施例中,基于步驟306中所生成的第一加密存儲地址和步驟307中所生成的加密對稱密鑰,第二服務器可以從第一服務器獲取第一加密存儲地址和加密對稱密鑰。
在本實施例的一些可選的實現方式中,在生成第一加密存儲地址和加密對稱密鑰之后,第一服務器可以直接將第一加密存儲地址和加密對稱密鑰發(fā)送至第二服務器。
在本實施例的一些可選的實現方式中,在生成第一加密存儲地址和加密對稱密鑰之后,第一服務器可以對第一加密存儲地址和加密對稱密鑰進行存儲,并將第一加密存儲地址和加密對稱密鑰的存儲地址發(fā)送至第二服務器,以使第二服務器根據第一加密存儲地址和加密對稱密鑰的存儲地址獲取第一加密存儲地址和加密對稱密鑰。作為示例,在生成第一加密存儲地址和加密對稱密鑰之后,首先,第一服務器可以將第一加密存儲地址和加密對稱密鑰寫入從第二服務器所獲取到的智能合約中,并對該智能合約進行本地存儲。然后,第一服務器可以將該智能合約的存儲地址發(fā)送至第二服務器。最后,第二服務器可以根據該智能合約的存儲地址從第一服務器獲取該智能合約,并從該智能合約中提取出第一加密存儲地址和加密對稱密鑰。
在步驟309中,第二服務器利用與公鑰相對應的私鑰對加密對稱密鑰進行解密,獲取對稱密鑰。
在本實施例中,基于步驟308中所獲取到的加密對稱密鑰,第二服務器可以利用與公鑰相對應的私鑰對加密對稱密鑰進行解密,以獲取對稱密鑰。
在步驟310中,第二服務器利用對稱密鑰和預設對應關系對第一加密存儲地址進行解密,獲取待交換數據標識的存儲地址。
在本實施例中,基于步驟309中所獲取到的對稱密鑰,第二服務器可以利用對稱密鑰和預設對應關系對第一加密存儲地址進行解密,以獲取待交換數據標識的存儲地址。
在本實施的一些可選的實現方式中,第二服務器中也可以預先存儲分布式哈希表。這里,當第二服務器將第一加密存儲地址輸入至該分布式哈希表時,該分布式哈希表可以根據對應的映射關系,將第一加密存儲地址映射成第一密文。然后,第二服務器可以利用對稱密鑰對第一密文進行解密,獲取待交換數據標識的存儲地址。
在步驟311中,第二服務器基于待交換數據標識的存儲地址,獲取待交換數據標識。
在本實施例中,基于步驟310中所獲取到的待交換數據標識的存儲地址,第二服務器可以從第一服務器獲取待交換數據標識。
在步驟312中,第二服務器基于待交換數據標識,從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據。
在本實施例中,基于步驟311中所獲取到的待交換數據標識,第二服務器可以從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據。其中,數據集合可以包括數據和數據標識。
在步驟313中,第二服務器對待交換數據進行存儲。
在本實施例中,基于步驟312中所獲取到的待交換數據,第二服務器可以對待交換數據進行存儲。這里,第二服務器可以將待交換數據存儲在本地或者第三方服務器中。通常情況下,為了減少數據交換系統(tǒng)的建設與維護成本,第二服務器可以將待交換數據存儲在本地。作為示例,待交換數據可以以文本文件的形式存儲在第二服務器本地。
在步驟314中,第二服務器獲取待交換數據的存儲地址。
在本實施例中,在第二服務器對待交換數據進行存儲之后,第二服務器可以獲取待交換數據的存儲地址。其中,存儲地址可以是待交換數據在第二服務器中的具體存儲路徑。
在步驟315中,第二服務器利用對稱密鑰對待交換數據的存儲地址進行加密,生成第二密文。
在本實施例中,基于步驟309中所獲取到的對稱密鑰,第二服務器可以利用對稱密鑰對待交換數據的存儲地址進行加密,生成第二密文。
在步驟316中,第二服務器基于預設對應關系,將第二密文映射成第二加密存儲地址。
在本實施例中,第二服務器可以基于預設的對應關系,將第二密文映射成第二加密存儲地址。
在步驟317中,第一服務器從第二服務器獲取第二加密存儲地址。
在本實施例中,基于步驟316中所生成的第二加密存儲地址,第一服務器可以從第二服務器獲取第二加密存儲地址。
在步驟318中,第一服務器利用對稱密鑰和預設對應關系對第二加密存儲地址進行解密,獲取待交換數據的存儲地址。
在本實施例中,基于步驟317中所獲取到的第二加密存儲地址,第一服務器可以利用對稱密鑰和預設對應關系對第二加密存儲地址進行解密,以獲取待交換數據的存儲地址。作為示例,第一服務器可以首先將第二加密存儲地址輸入到分布式哈希表中,以獲取第二密文;然后利用對稱密鑰對第二密文進行解密,以獲取待交換數據的存儲地址。
在步驟319中,第一服務器基于待交換數據的存儲地址,獲取待交換數據。
在本實施例中,基于步驟318中所獲取到的待交換數據,第一服務器可以從第二服務器獲取待交換數據。
從圖3中可以看出,與圖2對應的實施例相比,本實施例中的數據交換系統(tǒng)的時序300突出了利用公鑰、私鑰和對稱密鑰進行加密和解密的步驟。從而數據交換系統(tǒng)能夠更加安全地、可靠地進行數據交換。
進一步參考圖4,其示出了根據本申請的用于第一服務器的數據交換方法的一個實施例的流程400。該用于第一服務器的數據交換方法的流程400,包括以下步驟:
步驟401,基于需求信息,獲取待交換數據標識。
在本實施例中,第一服務器(例如圖1所示的第一服務器102)可以通過有線連接方式或者無線連接方式從客戶端(例如圖1所示的終端設備101)獲取需求信息,并從需求信息中提取出待交換數據標識。其中,需求信息可以包括待交換數據標識。數據標識可以由文字、字母、數字、符號等組成,用來唯一識別數據。待交換數據標識可以用來唯一標識待交換數據。作為示例,數據標識可以包括數據名和/或數據索引。
步驟402,對待交換數據標識進行存儲。
在本實施例中,基于步驟401中所獲取到的待交換數據標識,第一服務器可以對待交換數據標識進行存儲。這里,第一服務器可以將待交換數據標識存儲在本地或者第三方服務器中。通常情況下,為了減少數據交換系統(tǒng)的建設與維護成本,第一服務器可以將待交換數據標識存儲在本地。作為示例,待交換數據標識可以以文本文件的形式存儲在第一服務器本地。
步驟403,獲取待交換數據標識的存儲地址。
在本實施例中,在第一服務器對待交換數據標識進行存儲之后,第一服務器可以獲取待交換數據標識的存儲地址。其中,存儲地址可以是待交換數據標識在第一服務器中的具體存儲路徑。
步驟404,對待交換數據標識的存儲地址進行加密,生成第一加密存儲地址。
在本實施例中,基于步驟403中所獲取到的待交換數據標識的存儲地址,第一服務器可以對待交換數據標識的存儲地址進行加密,生成第一加密存儲地址,以使第二服務器(例如圖1所示的第二服務器103)從第一服務器獲取第一加密存儲地址,對第一加密存儲地址進行解密,獲取待交換數據標識的存儲地址,基于待交換數據標識的存儲地址,獲取待交換數據標識,基于待交換數據標識,從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據,其中,數據集合可以包括數據和數據標識。
步驟405,從第二服務器獲取待交換數據。
在本實施例中,在第二服務器從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據之后,第一服務器可以從第二服務器獲取待交換數據。
本申請實施例提供的用于第一服務器的數據交換方法,首先,基于需求信息獲取待交換數據標識,并對待交換數據標識進行存儲;然后,對待交換數據標識的存儲地址進行加密,生成第一加密存儲地址,以使第二服務器從第一服務器獲取第一加密存儲地址,并對其進行解密以獲取待交換數據標識的存儲地址,基于待交換數據標識的存儲地址,獲取待交換數據標識,基于待交換數據標識從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據;最后,在第二服務器查找出待交換數據之后,從第二服務器獲取待交換數據。整個數據交換過程不需要數據交換中心的參與,第一服務器與第二服務器之間直接進行點對點的數據交換,從而節(jié)省了數據交換系統(tǒng)的建設與維護成本。
進一步參考圖5,作為對上述圖4所示方法的實現,本申請?zhí)峁┝艘环N用于第一服務器的數據交換裝置的一個實施例,該裝置實施例與圖4所示的方法實施例相對應,該裝置具體可以應用于各種電子設備中。
如圖5所示,本實施例所示的用于第一服務器的數據交換裝置500可以包括:第一獲取單元501、存儲單元502、第二獲取單元503、加密單元504和第三獲取單元505。其中,第一獲取單元501,配置用于基于需求信息,獲取待交換數據標識;存儲單元502,配置用于對待交換數據標識進行存儲;第二獲取單元503,配置用于獲取待交換數據標識的存儲地址;加密單元504,配置用于對待交換數據標識的存儲地址進行加密,生成第一加密存儲地址,以使第二服務器從第一服務器獲取第一加密存儲地址,對第一加密存儲地址進行解密,獲取待交換數據標識的存儲地址,基于待交換數據標識的存儲地址,獲取待交換數據標識,基于待交換數據標識,從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據,其中,數據集合包括數據和數據標識;第三獲取單元505,配置用于從第二服務器獲取待交換數據。
在本實施例中,用于第一服務器的數據交換裝置500中:第一獲取單元501、存儲單元502、第二獲取單元503、加密單元504和第三獲取單元505的具體處理及其所帶來的技術效果可分別參考圖4對應實施例中的步驟401、步驟402、步驟403、步驟404和步驟405的相關說明,在此不再贅述。
下面參考圖6,其示出了適于用來實現本申請實施例的服務器的計算機系統(tǒng)600的結構示意圖。圖6示出的服務器僅僅是一個示例,不應對本申請實施例的功能和使用范圍帶來任何限制。
如圖6所示,計算機系統(tǒng)600包括中央處理單元(cpu)601,其可以根據存儲在只讀存儲器(rom)602中的程序或者從存儲部分608加載到隨機訪問存儲器(ram)603中的程序而執(zhí)行各種適當的動作和處理。在ram603中,還存儲有系統(tǒng)600操作所需的各種程序和數據。cpu601、rom602以及ram603通過總線604彼此相連。輸入/輸出(i/o)接口605也連接至總線604。
以下部件連接至i/o接口605:包括鍵盤、鼠標等的輸入部分606;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等以及揚聲器等的輸出部分607;包括硬盤等的存儲部分608;以及包括諸如lan卡、調制解調器等的網絡接口卡的通信部分609。通信部分609經由諸如因特網的網絡執(zhí)行通信處理。驅動器610也根據需要連接至i/o接口605。可拆卸介質611,諸如磁盤、光盤、磁光盤、半導體存儲器等等,根據需要安裝在驅動器610上,以便于從其上讀出的計算機程序根據需要被安裝入存儲部分608。
特別地,根據本公開的實施例,上文參考流程圖描述的過程可以被實現為計算機軟件程序。例如,本公開的實施例包括一種計算機程序產品,其包括承載在計算機可讀介質上的計算機程序,該計算機程序包含用于執(zhí)行流程圖所示的方法的程序代碼。在這樣的實施例中,該計算機程序可以通過通信部分609從網絡上被下載和安裝,和/或從可拆卸介質611被安裝。在該計算機程序被中央處理單元(cpu)601執(zhí)行時,執(zhí)行本申請的方法中限定的上述功能。
需要說明的是,本申請上述的計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質或者是上述兩者的任意組合。計算機可讀存儲介質例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子可以包括但不限于:具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機訪問存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本申請中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。而在本申請中,計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用的程序。計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括但不限于:無線、電線、光纜、rf等等,或者上述的任意合適的組合。
附圖中的流程圖和框圖,圖示了按照本申請各種實施例的系統(tǒng)、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,該模塊、程序段、或代碼的一部分包含一個或多個用于實現規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個接連地表示的方框實際上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現,或者可以用專用硬件與計算機指令的組合來實現。
描述于本申請實施例中所涉及到的單元可以通過軟件的方式實現,也可以通過硬件的方式來實現。所描述的單元也可以設置在處理器中,例如,可以描述為:一種處理器包括第一獲取單元、存儲單元、第二獲取單元、加密單元和第三獲取單元。其中,這些單元的名稱在某種情況下并不構成對該單元本身的限定,例如,第一獲取單元還可以被描述為“基于需求信息,獲取待交換數據標識的單元”。
作為另一方面,本申請還提供了一種計算機可讀介質,該計算機可讀介質可以是上述實施例中描述的服務器中所包含的;也可以是單獨存在,而未裝配入該服務器中。上述計算機可讀介質承載有一個或者多個程序,當上述一個或者多個程序被該服務器執(zhí)行時,使得該服務器:基于需求信息,獲取待交換數據標識;對待交換數據標識進行存儲;獲取待交換數據標識的存儲地址;對待交換數據標識的存儲地址進行加密,生成第一加密存儲地址,以使第二服務器從第一服務器獲取第一加密存儲地址,對第一加密存儲地址進行解密,獲取待交換數據標識的存儲地址,基于待交換數據標識的存儲地址,獲取待交換數據標識,基于待交換數據標識,從預先存儲的數據集合中查找出待交換數據標識所指示的待交換數據,其中,數據集合包括數據和數據標識;從第二服務器獲取待交換數據。
以上描述僅為本申請的較佳實施例以及對所運用技術原理的說明。本領域技術人員應當理解,本申請中所涉及的發(fā)明范圍,并不限于上述技術特征的特定組合而成的技術方案,同時也應涵蓋在不脫離上述發(fā)明構思的情況下,由上述技術特征或其等同特征進行任意組合而形成的其它技術方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術特征進行互相替換而形成的技術方案。