本發(fā)明涉及服務(wù)端與客戶端傳輸信息安全領(lǐng)域,特別是一種高效安全的網(wǎng)絡(luò)通信方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)日益發(fā)展,手機(jī)應(yīng)用軟件越來越多,自然而然帶來了很多網(wǎng)絡(luò)信息傳輸問題:
一是客戶手機(jī)上數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中有可能被截取,并且盜用客戶信息;
二是客戶通信內(nèi)容有可能是特殊字符,帶來通信亂碼問題;
三是客戶信息內(nèi)容多,會(huì)導(dǎo)致給客戶帶來大量網(wǎng)絡(luò)流量和通信慢的問題;
為了解決高效網(wǎng)絡(luò)通信問題,需要一種高效安全的網(wǎng)絡(luò)通信的方法,從而解決信息通信安全問題,信息量大導(dǎo)致的流量問題等。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明解決的技術(shù)問題在于提供一種高效安全的網(wǎng)絡(luò)通信方法;解決客戶發(fā)送信息安全和傳輸大信息量問題,也提防了客戶非法請(qǐng)求和重復(fù)提交,確保了客戶信息不受泄露,高效通信,提高系統(tǒng)的可靠性。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
所述的方法是用戶登陸成功之后生成一串有生存時(shí)間的證書,客戶端先對(duì)要傳輸?shù)膬?nèi)容、證書和當(dāng)前時(shí)間戳進(jìn)行加密,加密后的密文再進(jìn)行壓縮,最后對(duì)壓縮后的密文進(jìn)行URL安全的Base64編碼,再發(fā)送到服務(wù)端;服務(wù)端接收之后,先進(jìn)行URL安全的Base64解碼,再解壓和解密,獲取到證書之后,對(duì)證書進(jìn)行校驗(yàn),校驗(yàn)成功之后,再對(duì)時(shí)間戳進(jìn)行判斷是否已經(jīng)請(qǐng)求,如果沒有請(qǐng)求,則記錄改時(shí)間戳到服務(wù)器上,防止請(qǐng)求重復(fù)提交。
所述的方法包括如下具體步驟:
步驟1:客戶登錄認(rèn)證獲取證書字符串;
步驟2:通過DES的私鑰加密信息內(nèi)容、證書和當(dāng)前時(shí)間戳;
步驟3:通過RSA的公鑰加密DES的私鑰;
步驟4:將信息密文和私鑰密文進(jìn)行GZIP壓縮;
步驟5:進(jìn)行URL安全的Base64編碼;
步驟6:發(fā)送到服務(wù)端;
步驟7:服務(wù)端將密文進(jìn)行GZIP解壓;
步驟8:進(jìn)行URL安全的Base64解碼;
步驟9:通過服務(wù)端RSA私鑰解密DES私鑰密文;
步驟10:通過DES私鑰解密信息密文;
步驟11:校驗(yàn)證書是否有效,證書無效則結(jié)束;
步驟12:根據(jù)證書和時(shí)間戳判斷接口是否重復(fù)提交,如果是則請(qǐng)求無效結(jié)束;
步驟13:記錄改時(shí)間戳到數(shù)據(jù)庫上;
步驟14:請(qǐng)求完成。
所述證書字符串是基于redis緩存機(jī)制的key,并且該key帶有生存時(shí)間;
所述DES是一種使用密鑰加密的對(duì)稱加密算法,通過私鑰可以進(jìn)行加密和解密;
所述RSA是一種公鑰加密算法,是一種非對(duì)稱加密算法,通過公鑰進(jìn)行加密,然后再通過私鑰進(jìn)行解密;
所述GZIP是一個(gè)GNU自由軟件的文件壓縮程序,可以對(duì)字符串進(jìn)行壓縮;
所述URL安全的Base64是將二進(jìn)制轉(zhuǎn)碼成可見字符方便進(jìn)行http傳輸,base64轉(zhuǎn)碼時(shí)會(huì)生成″+″,″/″,″=″這些被URL進(jìn)行轉(zhuǎn)碼的特殊字符,URL安全的Base64可以將編碼中的″-″,″_″字符串轉(zhuǎn)換成″+″,″/″,字符串長度余4倍的位補(bǔ)″=″;
所述時(shí)間戳是通常是一個(gè)字符序列,唯一地標(biāo)識(shí)某一刻的時(shí)間。
本發(fā)明通過在客戶端對(duì)內(nèi)容進(jìn)行用戶認(rèn)證,多重加密,編碼,壓縮來實(shí)現(xiàn)高效和安全的網(wǎng)絡(luò)通信。本發(fā)明給當(dāng)前飛速發(fā)展的互聯(lián)網(wǎng)通信提供有力支持,與目前市場(chǎng)上的系統(tǒng)提供的單一加密算法比較起來,本發(fā)明提供了接口的時(shí)效性,信息的安全性,傳輸?shù)母咝?,更好地適應(yīng)當(dāng)前互聯(lián)網(wǎng)傳輸步伐,為以后更高速的網(wǎng)絡(luò)傳輸打下堅(jiān)實(shí)的基礎(chǔ)。本發(fā)明解決了客戶發(fā)送信息安全和傳輸大信息量問題,也提防了客戶非法請(qǐng)求和重復(fù)提交,確保了客戶信息不受泄露,高效通信,提高系統(tǒng)的可靠性,增大了信息傳輸安全性。
附圖說明
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明:
圖1為本發(fā)明方法流程圖。
具體實(shí)施方式
如圖1所示,本發(fā)明的是用戶登陸成功之后生成一串有生存時(shí)間的證書,客戶端先對(duì)要傳輸?shù)膬?nèi)容、證書和當(dāng)前時(shí)間戳進(jìn)行加密,加密后的密文再進(jìn)行壓縮,最后對(duì)壓縮后的密文進(jìn)行URL安全的Base64編碼,再發(fā)送到服務(wù)端;服務(wù)端接收之后,先進(jìn)行URL安全的Base64解碼,再解壓和解密,獲取到證書之后,對(duì)證書進(jìn)行校驗(yàn),校驗(yàn)成功之后,再對(duì)時(shí)間戳進(jìn)行判斷是否已經(jīng)請(qǐng)求,如果沒有請(qǐng)求,則記錄改時(shí)間戳到服務(wù)器上,防止請(qǐng)求重復(fù)提交。具體包括如下步驟:
步驟1:客戶登錄認(rèn)證獲取證書字符串;
步驟2:通過DES的私鑰加密信息內(nèi)容、證書和當(dāng)前時(shí)間戳;
步驟3:通過RSA的公鑰加密DES的私鑰;
步驟4:將信息密文和私鑰密文進(jìn)行GZIP壓縮;
步驟5:進(jìn)行URL安全的Base64編碼;
步驟6:發(fā)送到服務(wù)端;
步驟7:服務(wù)端將密文進(jìn)行GZIP解壓;
步驟8:進(jìn)行URL安全的Base64解碼;
步驟9:通過服務(wù)端RSA私鑰解密DES私鑰密文;
步驟10:通過DES私鑰解密信息密文;
步驟11:校驗(yàn)證書是否有效,證書無效則結(jié)束;
步驟12:根據(jù)證書和時(shí)間戳判斷接口是否重復(fù)提交,如果是則請(qǐng)求無效結(jié)束;
步驟13:記錄改時(shí)間戳到數(shù)據(jù)庫上;
步驟14:請(qǐng)求完成。
各關(guān)鍵部分的代碼如下:
獲取服務(wù)端解密代碼:
Base64解密代碼:
DES解密代碼:
RSA解密代碼:
GZIP數(shù)據(jù)解壓縮代碼:
public static byte[]decompress(byte[]data)throws IOException{
ByteArrayInputStream bais=new ByteArrayInputStream(data);
ByteArrayOutputStream baos=new ByteArrayOutputstream();
decompress(bais,baos);
data=baos.toByteArray();
baos.flush();
baos.close();
bais.close();
return data;
}。