iOS RSA加密解密

前言

最近剛做了一個(gè)登錄接口的RSA加解密畏邢,感覺難度不大分预,寫下來給大家以作參考趴梢。

過程

首先后端用的是openssl生成RSA的私鑰和公鑰敬察,詳細(xì)可參考這篇文章iOS中使用RSA加密,一般來說服務(wù)端保留RSA的私鑰秀睛,客戶端持有公鑰,客戶端上傳數(shù)據(jù)時(shí)用公鑰加密莲祸,服務(wù)端用私鑰解密蹂安。

先給出我用的RSA加解密的框架RSA框架Github,這個(gè)框架API都是直接用字符串類型的公鑰可以進(jìn)行操作锐帜,所以我們要先把我們的公鑰轉(zhuǎn)化成字符串田盈。上面生成證書的那篇文章說到要生成iOS用的.der的公鑰,因?yàn)闆]用它的RSA框架缴阎,所以用不到允瞧。

向服務(wù)端要一個(gè).pem 的公鑰,用文本打開(或者直接要一個(gè)公鑰的字符串)蛮拔,如下:

-----BEGIN PUBLIC KEY-----
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
-----END PUBLIC KEY-----

直接復(fù)制過來述暂,會(huì)發(fā)現(xiàn)每一行都有換行,把換行去掉建炫,就可以在iOS當(dāng)中直接使用畦韭,如下

-----BEGIN PUBLIC KEY-----XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-----END PUBLIC KEY-----

接下來就是加解密的過程:
客戶端用公鑰把數(shù)據(jù)加密 -> 后端接收請(qǐng)求參數(shù) ->用私鑰解密獲取正確參數(shù) ->后端根據(jù)請(qǐng)求參數(shù)獲得返回?cái)?shù)據(jù)用私鑰加密 ->客戶端獲取返回?cái)?shù)據(jù) ->公鑰解密后獲取正確數(shù)據(jù)

大致流程是這樣,有些后端會(huì)在數(shù)據(jù)加解密的過程加base64編解碼肛跌,這里需要客戶端和后端溝通好艺配,注意加密解密以及base64編碼解碼的順序

另外衍慎,RSA公鑰和私鑰都可以用來加密或解密妒挎。只要能保證用A加密,就用B解密就行西饵。至于A是公鑰還是私鑰,其實(shí)可以根據(jù)不同的用途而定鳞芙,這里我剛做的時(shí)候也有疑問眷柔,稍微提一下

示例代碼:

#define RSA_PublicKey @"-----BEGIN PUBLIC KEY-----XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-----END PUBLIC KEY-----"
//加密
    NSString *encryptPassword = [RSA encryptString:password publicKey:RSA_PublicKey];
//解密
    NSString *decryptString = [RSA decryptString:receiveStr publicKey:RSA_PublicKey];

整個(gè)流程下來感覺難度不大原朝,主要就是證書處理需要探索下驯嘱,還有就是和服務(wù)端調(diào)接口比較費(fèi)時(shí)間,多研究下就可以了

結(jié)束

學(xué)習(xí)之路喳坠,與君共勉鞠评。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市壕鹉,隨后出現(xiàn)的幾起案子剃幌,更是在濱河造成了極大的恐慌聋涨,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件负乡,死亡現(xiàn)場(chǎng)離奇詭異牍白,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)抖棘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門茂腥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人切省,你說我怎么就攤上這事最岗。” “怎么了朝捆?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵般渡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我右蹦,道長(zhǎng)诊杆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任何陆,我火速辦了婚禮晨汹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贷盲。我一直安慰自己淘这,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布巩剖。 她就那樣靜靜地躺著铝穷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪佳魔。 梳的紋絲不亂的頭發(fā)上曙聂,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音鞠鲜,去河邊找鬼宁脊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛贤姆,可吹牛的內(nèi)容都是我干的榆苞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼霞捡,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼坐漏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤赊琳,失蹤者是張志新(化名)和其女友劉穎街夭,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體慨畸,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡莱坎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寸士。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片檐什。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖弱卡,靈堂內(nèi)的尸體忽然破棺而出乃正,到底是詐尸還是另有隱情,我是刑警寧澤婶博,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布瓮具,位于F島的核電站,受9級(jí)特大地震影響凡人,放射性物質(zhì)發(fā)生泄漏名党。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一挠轴、第九天 我趴在偏房一處隱蔽的房頂上張望传睹。 院中可真熱鬧,春花似錦岸晦、人聲如沸欧啤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邢隧。三九已至,卻和暖如春冈在,著一層夾襖步出監(jiān)牢的瞬間倒慧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國打工包券, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留纫谅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓兴使,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親照激。 傳聞我的和親對(duì)象是個(gè)殘疾皇子发魄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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