iOS柑船,一行代碼進行RSA、DES 泼各、AES加密鞍时、解密及MD5加密

最近做了一個移動項目,是有服務(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不能私鑰加密公鑰解密,只能用于驗簽)燃领。

問題

問題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)試公鑰轧抗、私鑰解密(因為私鑰不留在客戶端)

詳細(xì)步驟

問題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"2肉瓦、加密時調(diào)用類方法 +(NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key;3贞绵、解密時調(diào)用類方法 +(NSString *)decryptUseDES:(NSString *)cipherText key:(NSString *)key;

ios端進行RSA加密屁魏、解密時非常方便

1严望、引入頭文件 #import "RSAUtil.h"2村象、公鑰加密時調(diào)用類方法:+ (NSString *)encryptString:(NSString *)str publicKey:(NSString *)pubKey;+ (NSData *)encryptData:(NSData *)data publicKey:(NSString *)pubKey;3亭病、私鑰解密時調(diào)用類方法 + (NSString *)decryptString:(NSString *)str privateKey:(NSString *)privKey;+ (NSData *)decryptData:(NSData *)data privateKey:(NSString *)privKey;

ios端進行MD5加密鹅很、解密時非常方便

1、引入頭文件 #import "MD5Util"2罪帖、加密時調(diào)用方法:- (NSString *)md5:(NSString *)str;

ios端進行AES加密促煮、解密時非常方便

1、引入頭文件 #import "AES.h"2整袁、加密時調(diào)用方法+ (NSString *)encrypt:(NSString *)message password:(NSString *)password;2菠齿、解密時調(diào)用的方法+ (NSString *)decrypt:(NSString *)base64EncodedString password:(NSString *)password;

有關(guān)RSA、MD5坐昙、AES加密的原理介紹

效果圖

image

收錄:本文地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绳匀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子炸客,更是在濱河造成了極大的恐慌疾棵,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痹仙,死亡現(xiàn)場離奇詭異是尔,居然都是意外死亡,警方通過查閱死者的電腦和手機开仰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進店門拟枚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來薪铜,“玉大人,你說我怎么就攤上這事恩溅「艄浚” “怎么了?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵脚乡,是天一觀的道長蜒滩。 經(jīng)常有香客問我,道長每窖,這世上最難降的妖魔是什么帮掉? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任弦悉,我火速辦了婚禮窒典,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘稽莉。我一直安慰自己瀑志,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布污秆。 她就那樣靜靜地躺著劈猪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪良拼。 梳的紋絲不亂的頭發(fā)上战得,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天,我揣著相機與錄音庸推,去河邊找鬼常侦。 笑死,一個胖子當(dāng)著我的面吹牛贬媒,可吹牛的內(nèi)容都是我干的聋亡。 我是一名探鬼主播,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼际乘,長吁一口氣:“原來是場噩夢啊……” “哼坡倔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起脖含,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤罪塔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后养葵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垢袱,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年港柜,在試婚紗的時候發(fā)現(xiàn)自己被綠了请契。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咳榜。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖爽锥,靈堂內(nèi)的尸體忽然破棺而出涌韩,到底是詐尸還是另有隱情,我是刑警寧澤氯夷,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布臣樱,位于F島的核電站,受9級特大地震影響腮考,放射性物質(zhì)發(fā)生泄漏雇毫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一踩蔚、第九天 我趴在偏房一處隱蔽的房頂上張望棚放。 院中可真熱鬧,春花似錦馅闽、人聲如沸飘蚯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽局骤。三九已至,卻和暖如春暴凑,著一層夾襖步出監(jiān)牢的瞬間峦甩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工现喳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凯傲,地道東北人。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓拿穴,卻偏偏與公主長得像泣洞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子默色,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容