本發(fā)明涉及網絡數(shù)據(jù)加解密領域,具體涉及一種數(shù)據(jù)加解密方法及系統(tǒng)。
背景技術:
隨著智能手機的普及的快速發(fā)展,智能手機已經能夠為人們提高諸多業(yè)務(例如在手機上瀏覽郵件、查看洽談交易信息等)。隨著智能手機的普及,越來越多的人們已經逐漸習慣用手機代替電腦進行業(yè)務交互。
但是,采用智能手機與電腦進行業(yè)務交互的重要區(qū)別在于:電腦是固定的,智能手機是可移動的。該重要區(qū)別會使得智能手機在非指定位置查看規(guī)定只能在指定位置查看的信息,其安全存在一定隱患。
例如:某公司規(guī)定,公司人力資源部分發(fā)給員工的郵件內容只能在公司的辦公室查閱,此時若員工通過公司辦公室的電腦接收郵件查閱,則沒有問題;但是若員工通過智能手機接收郵件、且自身處于公司辦公室之外的地域,此時查閱郵件則會發(fā)生在非指定位置查看規(guī)定只能在指定位置查看的信息。
技術實現(xiàn)要素:
針對現(xiàn)有技術中存在的缺陷,本發(fā)明解決的技術問題為:控制原始數(shù)據(jù)的查閱位置,只有用戶處于指定位置時,才能查閱原始數(shù)據(jù);若用戶處于非指定位置,則無法查閱原始數(shù)據(jù)。
為達到以上目的,本發(fā)明提供的數(shù)據(jù)加解密方法,包括以下步驟:
S1:服務端設置查閱原始數(shù)據(jù)時所在的指定位置數(shù)據(jù);
S2:服務端通過消息摘要算法對所述指定位置數(shù)據(jù)進行計算,得到原始數(shù)據(jù)的解密KEY:KEY1;
S3:服務端將原始數(shù)據(jù)和KEY1進行關聯(lián),形成待加密數(shù)據(jù);
S4:服務端通過加密算法對待加密數(shù)據(jù)進行加密,形成加密密文,將加密密文發(fā)送至客戶端;
S5:客戶端通過消息摘要算法對當前位置數(shù)據(jù)進行計算,得到當前KEY:KEY2;
S6:客戶端根據(jù)與S4中加密算法對稱的解密算法,通過KEY2對加密密文進行解密,得到解密明文。
本發(fā)明提供的實現(xiàn)上述方法的數(shù)據(jù)加解密系統(tǒng),包括位于服務端上的原始數(shù)據(jù)查閱條件設置模塊、解密KEY計算模塊、原始數(shù)據(jù)關聯(lián)模塊和原始數(shù)據(jù)加密模塊、以及位于客戶端上的當前KEY計算模塊和原始數(shù)據(jù)解密模塊;
原始數(shù)據(jù)查閱條件設置模塊用于:設置查閱原始數(shù)據(jù)時所在的指定位置數(shù)據(jù),向解密KEY計算模塊發(fā)送解密KEY計算信號;
解密KEY計算模塊用于:收到解密KEY計算信號后,通過消息摘要算法對所述指定位置數(shù)據(jù)進行計算,得到原始數(shù)據(jù)的解密KEY:KEY1,向原始數(shù)據(jù)關聯(lián)模塊發(fā)送原始數(shù)據(jù)關聯(lián)信號;
原始數(shù)據(jù)關聯(lián)模塊用于:收到原始數(shù)據(jù)關聯(lián)信號后,將原始數(shù)據(jù)和KEY1進行關聯(lián),形成待加密數(shù)據(jù),向原始數(shù)據(jù)加密模塊發(fā)送原始數(shù)據(jù)加密信號;
原始數(shù)據(jù)加密模塊用于:收到原始數(shù)據(jù)加密信號后,通過加密算法對待加密數(shù)據(jù)進行加密,形成加密密文,將加密密文發(fā)送至客戶端,向當前KEY計算模塊發(fā)送當前KEY計算信號;
當前KEY計算模塊用于:收到當前KEY計算信號后,通過消息摘要算法對當前位置數(shù)據(jù)進行計算,得到當前KEY:KEY2,向原始數(shù)據(jù)解密模塊發(fā)送原始數(shù)據(jù)解密信號;
原始數(shù)據(jù)解密模塊用于:收到原始數(shù)據(jù)解密信號后,根據(jù)與原始數(shù)據(jù)加密模塊中加密算法對稱的解密算法,通過KEY2對加密密文進行解密,得到解密明文。
與現(xiàn)有技術相比,本發(fā)明的優(yōu)點在于:
本發(fā)明預先將原始數(shù)據(jù)加密,將查閱原始數(shù)據(jù)的指定位置數(shù)據(jù)形成解密KEY。在此基礎上,只有用戶到達指定位置時,才能夠以當前位置數(shù)據(jù)形成的當前KEY正確解密原始數(shù)據(jù)(因為此時當前位置與指定位置相同,即當前KEY與解密KEY相同),若用戶未到達指定位置,則當前位置錯誤,此時以當前位置數(shù)據(jù)形成的當前KEY無法對原始數(shù)據(jù)進行正確解密(因為此時當前位置與指定位置不同,即當前KEY與解密KEY不同)。
有鑒于此,本發(fā)明能夠嚴格控制原始數(shù)據(jù)的查閱位置,當用戶處于非指定位置時,無法查閱原始數(shù)據(jù),原始數(shù)據(jù)的信息安全得到了保障。
附圖說明
圖1為本發(fā)明實施例中數(shù)據(jù)加解密方法的流程圖。
具體實施方式
以下結合附圖及實施例對本發(fā)明作進一步詳細說明。
首先對LBS(Location Based Service,基于位置服務)做出簡要說明,LBS是通過電信移動運營商的無線電通訊網絡(如GSM網、CDMA網)或外部定位方式(如GPS)獲取移動終端用戶的位置信息(地理坐標,或大地坐標),在GIS(Geographic Information System,地理信息系統(tǒng))平臺的支持下,為用戶提供相應服務的一種增值業(yè)務。
在此基礎上,參見圖1所示,本發(fā)明實施例中的數(shù)據(jù)加解密方法,包括以下步驟:
S1:服務端設置查閱原始數(shù)據(jù)(例如郵件、合同的具體內容等)時所在的指定位置數(shù)據(jù),指定位置數(shù)據(jù)為查閱原始數(shù)據(jù)時所在地的經度和緯度組合形成的字符串。例如設置查看數(shù)據(jù)的位置為北京,經度116.403,緯度39.924,(考慮到精度范圍,本實施例對經度和緯度取值為小數(shù)點后3位)將其組合成字符串的形式如下:“11640339924”。
S2:服務端通過消息摘要算法(本實施例中為MD5,Message Digest Algorithm MD5,即消息摘要算法第五版)對指定位置數(shù)據(jù)進行計算,得到原始數(shù)據(jù)的解密KEY:KEY1,KEY1的長度為16個字節(jié)的字符串;例如:KEY1=MD5(“11640339924”),其中11640339924為S1中的字符串。
S3:服務端將原始數(shù)據(jù)和KEY1進行關聯(lián),形成待加密數(shù)據(jù)。
S4:服務端通過加密算法(本實施例中為AES加密算法,Advanced Encryption Standard,高級加密標準算法)對待加密數(shù)據(jù)進行加密,形成加密密文,將加密密文發(fā)送至基于LBS技術的智能手機。形成加密密文的具體流程為:EncryptData=AesEncrypt(SrcData,KEY1);其中EncryptData為加密密文,AesEncrypt是AES加密算法提供的加密函數(shù)接口,SrcData為原始數(shù)據(jù),(SrcData,KEY1)為關聯(lián)后的待加密數(shù)據(jù)。
S5:用戶預估達到查閱原始數(shù)據(jù)所在的位置后,控制智能手機獲取當前位置數(shù)據(jù),當前位置數(shù)據(jù)為當前所在地的經度和緯度形成的字符串;將當前經度和緯度組合形成字符串后,通過消息摘要算法對當前位置數(shù)據(jù)進行計算,得到當前KEY:KEY2,KEY2的長度為16個字節(jié)的字符串。
S6:智能手機根據(jù)與S4中加密算法對稱的解密算法(即AES解密算法),通過KEY2對加密密文進行解密,得到解密明文;具體流程為:SrcData=AesEncrypt(EncryptData,KEY2);其中SrcData為解密明文。
S7:智能手機判斷解密明文是否為亂碼,若是,則證明KEY2錯誤(即KEY2與KEY1不同,也就是說當前位置不是指定位置),此時提示用戶當前位置錯誤,用戶更換位置后重新執(zhí)行S5;否則證明KEY2正確(用戶到達指定位置),確認解密明文正確,顯示解密明文,結束。
本發(fā)明提供的實現(xiàn)上述方法的數(shù)據(jù)加解密系統(tǒng),包括位于服務端上的原始數(shù)據(jù)查閱條件設置模塊、解密KEY計算模塊、原始數(shù)據(jù)關聯(lián)模塊和原始數(shù)據(jù)加密模塊、以及位于客戶端上的當前KEY計算模塊、原始數(shù)據(jù)解密模塊和原始數(shù)據(jù)鑒別模塊。
原始數(shù)據(jù)查閱條件設置模塊用于:設置查閱原始數(shù)據(jù)時所在的指定位置數(shù)據(jù)(經度和緯度組合形成的字符串),向解密KEY計算模塊發(fā)送解密KEY計算信號;
解密KEY計算模塊用于:收到解密KEY計算信號后,通過消息摘要算法對所述指定位置數(shù)據(jù)進行計算,得到原始數(shù)據(jù)的解密KEY:KEY1(16個字節(jié)的字符串),向原始數(shù)據(jù)關聯(lián)模塊發(fā)送原始數(shù)據(jù)關聯(lián)信號;
原始數(shù)據(jù)關聯(lián)模塊用于:收到原始數(shù)據(jù)關聯(lián)信號后,將原始數(shù)據(jù)和KEY1進行關聯(lián),形成待加密數(shù)據(jù),向原始數(shù)據(jù)加密模塊發(fā)送原始數(shù)據(jù)加密信號;
原始數(shù)據(jù)加密模塊用于:收到原始數(shù)據(jù)加密信號后,通過加密算法對待加密數(shù)據(jù)進行加密,形成加密密文,將加密密文發(fā)送至客戶端,向當前KEY計算模塊發(fā)送當前KEY計算信號;
當前KEY計算模塊用于:收到當前KEY計算信號后,通過消息摘要算法對當前位置數(shù)據(jù)(經度和緯度組合形成的字符串)進行計算,得到當前KEY:KEY2(16個字節(jié)的字符串),向原始數(shù)據(jù)解密模塊發(fā)送原始數(shù)據(jù)解密信號;
原始數(shù)據(jù)解密模塊用于:收到原始數(shù)據(jù)解密信號后,根據(jù)與原始數(shù)據(jù)加密模塊中加密算法對稱的解密算法,通過KEY2對加密密文進行解密,得到解密明文。
原始數(shù)據(jù)鑒別模塊用于:判斷原始數(shù)據(jù)解密模塊得到的解密明文是否為亂碼,待當前位置變更后重新向當前KEY計算模塊發(fā)送當前KEY計算信號;否則顯示解密明文。
本發(fā)明不局限于上述實施方式,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍之內。本說明書中未作詳細描述的內容屬于本領域專業(yè)技術人員公知的現(xiàn)有技術。