概念解釋:
- 對(duì)稱加密:
需要對(duì)加密和解密使用相同密鑰的加密算法港庄。由于其速度快,對(duì)稱性加密通常在消息發(fā)送方需要加密大量數(shù)據(jù)時(shí)使用恕曲。對(duì)稱性加密也稱為密鑰加密.
優(yōu)點(diǎn):
對(duì)稱加密算法的優(yōu)點(diǎn)是算法公開鹏氧、計(jì)算量小、加密速度快佩谣、加密效率高把还。
缺點(diǎn):
在數(shù)據(jù)傳送前,發(fā)送方和接收方必須商定好秘鑰茸俭,然后使雙方都能保存好秘鑰吊履。其次如果一方的秘鑰被泄露,那么加密信息也就不安全了.
- 非對(duì)稱加密:
非對(duì)稱加密算法需要兩個(gè)密鑰來進(jìn)行加密和解密调鬓,這兩個(gè)秘鑰是公開密鑰(public key艇炎,簡(jiǎn)稱公鑰)和私有密鑰(private key,簡(jiǎn)稱私鑰)腾窝。
優(yōu)點(diǎn):
與對(duì)稱加密相比缀踪,其安全性更好:對(duì)稱加密的通信雙方使用相同的秘鑰,如果一方的秘鑰遭泄露燕锥,那么整個(gè)通信就會(huì)被破解辜贵。而非對(duì)稱加密使用一對(duì)秘鑰,一個(gè)用來加密归形,一個(gè)用來解密托慨,而且公鑰是公開的,秘鑰是自己保存的暇榴,不需要像對(duì)稱加密那樣在通信之前要先同步秘鑰厚棵。
缺點(diǎn):
非對(duì)稱加密的缺點(diǎn)是加密和解密花費(fèi)時(shí)間長(zhǎng)、速度慢蔼紧,只適合對(duì)少量數(shù)據(jù)進(jìn)行加密婆硬。
MD5:
- 加密后不可逆(只能加密不可解密),我們用于加密用戶的登錄密碼;
DES:
- 對(duì)稱加密(服務(wù)器和客戶端公用同一個(gè)秘鑰)奸例,缺點(diǎn):一旦被抓包破解了秘鑰彬犯,就能破解所有的傳遞信息;
RSA:
- 非對(duì)稱加密(會(huì)生成一對(duì)秘鑰(公鑰和私鑰)), 通過MAC終端生成兩個(gè).pem文件,cat文件查吊,獲取里面的字符串(也就是秘鑰);
MAC上生成公鑰谐区、私鑰的方法,及使用:
打開終端逻卖,選擇一個(gè)文件夾目錄;
輸入指令:
openssl
;
openssl是生成各種秘鑰的工具宋列,mac已經(jīng)嵌入;
輸入指令:
genrsa -out rsa_private_key.pem 1024
(生成私鑰,服務(wù)端使用);輸入指令:
rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout
(生成公鑰);輸入指令:
pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt
(私鑰轉(zhuǎn)格式评也,在ios端用這個(gè)私鑰測(cè)試解密過程) ;
應(yīng)用場(chǎng)景:
通過簡(jiǎn)單的URLENCODE + BASE64編碼防止數(shù)據(jù)明文傳輸炼杖;
對(duì)普通請(qǐng)求灭返、返回?cái)?shù)據(jù),生成MD5校驗(yàn)(MD5中加入動(dòng)態(tài)密鑰)坤邪,進(jìn)行數(shù)據(jù)完整性(簡(jiǎn)單防篡改熙含,安全性較低,優(yōu)點(diǎn):快速)校驗(yàn);
對(duì)于重要數(shù)據(jù)罩扇,使用RSA進(jìn)行數(shù)字簽名婆芦,起到防篡改作;
對(duì)于比較敏感的數(shù)據(jù),如用戶信息(登陸喂饥、注冊(cè)等)消约,客戶端發(fā)送使用RSA加密,服務(wù)器返回使用DES(AES)加密;
客戶端發(fā)送之所以使用RSA加密员帮,是因?yàn)镽SA解密需要知道服務(wù)器私鑰或粮,而服務(wù)器私鑰一般盜取難度較大;如果使用DES的話捞高,可以通過破解客戶端獲取密鑰氯材,安全性較低。而服務(wù)器返回之所以使用DES硝岗,是因?yàn)椴还苁褂肈ES還是RSA氢哮,密鑰(或私鑰)都存儲(chǔ)在客戶端,都存在被破解的風(fēng)險(xiǎn)型檀,因此冗尤,需要采用動(dòng)態(tài)密鑰,而RSA的密鑰生成比較復(fù)雜胀溺,不太適合動(dòng)態(tài)密鑰裂七,并且RSA速度相對(duì)較慢,所以選用DES)
總結(jié):
- 密碼加密用MD5仓坞,信息傳遞用RSA + DES
首先移動(dòng)端給服務(wù)器傳遞通過RSA公鑰加密后的數(shù)據(jù),參數(shù)包括DES的密鑰(密鑰是隨機(jī)生成的八位字符串) 和 相關(guān)參數(shù)信息背零,服務(wù)器通過私鑰解密信息數(shù)據(jù),里面包括DES密鑰和 相關(guān)參數(shù)信息无埃,服務(wù)器再通過此DES密鑰加密返回?cái)?shù)據(jù)給移動(dòng)端徙瓶,移動(dòng)端通過此DES密鑰進(jìn)行解密獲取數(shù)據(jù)。優(yōu)點(diǎn):因?yàn)镽SA不容易解密嫉称,即使被攔截解密了侦镇,獲取了DES的密鑰,因?yàn)镈ES的密鑰是隨機(jī)生成的澎埠,也只能解密這一次的數(shù)據(jù)信息虽缕,不會(huì)對(duì)其他數(shù)據(jù)信息產(chǎn)生影響始藕。(注:DES的密鑰每一次都要重新隨機(jī)生成蒲稳,也就是一個(gè)密鑰只完成這一次的數(shù)據(jù)傳遞)
(未完待續(xù)......)