ios常見加密解密方法(RSA、DES、AES、MD5)-創(chuàng)新互聯(lián)

最近做了一個移動項目,是有服務(wù)器和客戶端類型的項目,客戶端是要登錄才行的,服務(wù)器也會返回數(shù)據(jù),服務(wù)器是用Java開發(fā)的,客戶端要同時支持多平臺(Android、iOS),在處理iOS的數(shù)據(jù)加密的時候遇到了一些問題。起初采取的方案是DES加密,老大說DES加密是對稱的,網(wǎng)絡(luò)抓包加上反編譯可能會被破解,故采取RSA方式加密。RSA加密時需要公鑰和私鑰,客戶端保存公鑰加密數(shù)據(jù),服務(wù)器保存私鑰解密數(shù)據(jù)。(iOS端公鑰加密私鑰解密、java端公鑰加密私鑰解密,java端私鑰加密公鑰解密都容易做到,iOS不能私鑰加密公鑰解密,只能用于驗簽)。

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)徐水,十載網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

問題

問題1:iOS端公鑰加密的數(shù)據(jù)用Java端私鑰解密。

iOS無論使用系統(tǒng)自帶的sdk函數(shù),用mac產(chǎn)生的或者使用java的jdk產(chǎn)生的公鑰和私鑰,進行加密解密自己都可以使用。不過ios加密,java解密,或者反過來就不能用了。要么是無法創(chuàng)建報告?zhèn)€-9809或-50的錯誤,要么解出來是亂碼。ios系統(tǒng)函數(shù)種只有用公鑰加密,私鑰解密的方式。而公鑰加密每次結(jié)果都不同。

MAC上生成公鑰、私鑰的方法,及使用

1.打開終端,切換到自己想輸出的文件夾下

2.輸入指令:openssl(openssl是生成各種秘鑰的工具,mac已經(jīng)嵌入

3.輸入指令:genrsa -out rsa_private_key.pem 1024(生成私鑰,java端使用的)

4.輸入指令:rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout(生成公鑰)

5.輸入指令:pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem     -nocrypt(私鑰轉(zhuǎn)格式,在ios端使用私鑰解密時用這個私鑰)

注意:在MAC上生成三個.pem格式的文件,一個公鑰,兩個私鑰,都可以在終端通過指令vim xxx.pem 打開,里面是字符串,第三步生成的私鑰是java端用來解密數(shù)據(jù)的,第五步轉(zhuǎn)換格式的私鑰iOS端可以用來調(diào)試公鑰、私鑰解密(因為私鑰不留在客戶端)

問題2:服務(wù)器返回數(shù)據(jù)也要加密,老大打算用java私鑰加密,ios用公鑰解密(由于iOS做不到用私鑰加密公鑰解密,只能私鑰加密公鑰驗簽),所以這種方案也有問題。

通過看一些大牛的介紹,了解了iOS常用的加密方式

1 通過簡單的URLENCODE + BASE64編碼防止數(shù)據(jù)明文傳輸

2 對普通請求、返回數(shù)據(jù),生成MD5校驗(MD5中加入動態(tài)密鑰),進行數(shù)據(jù)完整性(簡單防篡改,安全性較低,優(yōu)點:快速)校驗

3 對于重要數(shù)據(jù),使用RSA進行數(shù)字簽名,起到防篡改作

4 對于比較敏感的數(shù)據(jù),如用戶信息(登陸、注冊等),客戶端發(fā)送使用RSA加密,服務(wù)器返回使用DES(AES)加密
原因:客戶端發(fā)送之所以使用RSA加密,是因為RSA解密需要知道服務(wù)器私鑰,而服務(wù)器私鑰一般盜取難度較大;如果使用DES的話,可以通過破解客戶端獲取密鑰,安全性較低。而服務(wù)器返回之所以使用DES,是因為不管使用DES還是RSA,密鑰(或私鑰)都存儲在客戶端,都存在被破解的風(fēng)險,因此,需要采用動態(tài)密鑰,而RSA的密鑰生成比較復(fù)雜,不太適合動態(tài)密鑰,并且RSA速度相對較慢,所以選用DES)
所以此次加密,我們選擇了第四種加密方式

加密方式

ios端進行DES加密、解密時非常方便

1、引入頭文件

#import "DES3Util.h"

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站muchs.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前標(biāo)題:ios常見加密解密方法(RSA、DES、AES、MD5)-創(chuàng)新互聯(lián)
分享URL:http://muchs.cn/article0/pdjio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、商城網(wǎng)站、網(wǎng)站制作、小程序開發(fā)、響應(yīng)式網(wǎng)站、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)