怎么在ios中應(yīng)用“RSA的私鑰加密或公鑰加密算法”呢耳幢?

RSA基本原理

RSA使用"秘匙對(duì)"對(duì)數(shù)據(jù)進(jìn)行加密解密.在加密解密數(shù)據(jù)前,需要先生成公鑰(public key)和私鑰(private key).

公鑰(public key): 用于加密數(shù)據(jù). 用于公開(kāi), 一般存放在數(shù)據(jù)提供方, 例如iOS客戶端.

私鑰(private key): 用于解密數(shù)據(jù). 必須保密, 私鑰泄露會(huì)造成安全問(wèn)題.

iOS中的Security.framework提供了對(duì)RSA算法的支持.這種方式需要對(duì)密匙對(duì)進(jìn)行處理, 根據(jù)public key生成證書(shū), 通過(guò)private key生成p12格式的密匙.

除了Secruty.framework, 也可以 將openssl庫(kù)編譯到iOS工程中 , 這可以提供更靈活的使用方式.

一:客戶端發(fā)送流程(公鑰加密,私鑰解密)

二:客戶端接收流程(私鑰加密,公鑰解密)

1睛藻、使用openssl生成密鑰對(duì)

Github Gist: https://gist.github.com/lvjian700/635368d6f1e421447680(參考鏈接)

#!/usr/bin/env bash

echo"Generating RSA key pair ..."

echo"1024 RSA key: private_key.pem"

openssl genrsa -out private_key.pem 1024

echo"create certification require file: rsaCertReq.csr"

openssl req -new -key private_key.pem -out rsaCertReq.csr

echo"create certification using x509: rsaCert.crt"

openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt

echo"create public_key.der For IOS"

openssl x509 -outform der -in rsaCert.crt -out public_key.der

echo"create private_key.p12 For IOS. Please remember your password. The password will be used in iOS."

openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt

echo"create rsa_public_key.pem For Java"

openssl rsa -in private_key.pem -out rsa_public_key.pem -pubout

echo"create pkcs8_private_key.pem For Java"

openssl pkcs8 -topk8 -in private_key.pem -out pkcs8_private_key.pem -nocrypt

echo"finished."

提示:

1)在創(chuàng)建證書(shū)的時(shí)候, terminal會(huì)提示輸入證書(shū)信息. 根據(jù)提示輸入對(duì)應(yīng)信息就OK.

2)在創(chuàng)建p12密匙時(shí), 會(huì)提示輸入密碼, 此時(shí)的密碼必須記住, 之后會(huì)用到.

3)如果上面指令有問(wèn)題,請(qǐng)參考最新的openssl官方文檔, 以官方的為準(zhǔn).

2启上、下載RSA-objc文件夾。

RSA-objc的下載鏈接:https://github.com/jslim89/RSA-objc店印,從RSA-objc的項(xiàng)目中取出RSA-objc文件夾

3冈在、下載openssl library:

取出include、lib文件夾按摘。下載鏈接:https://github.com/st3fan/ios-openssl

4包券、新建一個(gè)項(xiàng)目,將文件夾RSA-objc炫贤、include溅固、lib拷貝到根目錄下,如圖:


5兰珍、設(shè)置環(huán)境變量:

設(shè)置“Header Search Paths” 的值為/Users/huangzhiming/Desktop/work/OpenSSL/OpenSSL/include ?(絕對(duì)路徑)

注意:設(shè)置“Header Search Paths” 的值時(shí)侍郭,$(PROJECT_DIR)/myRES/include(這么寫(xiě)是相對(duì)路徑)

設(shè)置“Valid Architectures” 的值為 armv7/armv7s。如圖:


6掠河、代碼編寫(xiě)


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末亮元,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子唠摹,更是在濱河造成了極大的恐慌爆捞,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勾拉,死亡現(xiàn)場(chǎng)離奇詭異煮甥,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)望艺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)苛秕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人找默,你說(shuō)我怎么就攤上這事艇劫。” “怎么了惩激?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵店煞,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我风钻,道長(zhǎng)顷蟀,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任骡技,我火速辦了婚禮鸣个,結(jié)果婚禮上羞反,老公的妹妹穿的比我還像新娘。我一直安慰自己囤萤,他們只是感情好昼窗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著涛舍,像睡著了一般澄惊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上富雅,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天掸驱,我揣著相機(jī)與錄音,去河邊找鬼没佑。 笑死毕贼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的图筹。 我是一名探鬼主播帅刀,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼远剩!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起骇窍,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瓜晤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后腹纳,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體痢掠,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年嘲恍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了足画。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡佃牛,死狀恐怖淹辞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情俘侠,我是刑警寧澤象缀,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站爷速,受9級(jí)特大地震影響央星,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜惫东,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一莉给、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦颓遏、人聲如沸胁黑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)丧蘸。三九已至,卻和暖如春遥皂,著一層夾襖步出監(jiān)牢的瞬間力喷,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工演训, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留弟孟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓样悟,卻偏偏與公主長(zhǎng)得像拂募,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子窟她,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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