揭開RSA神秘面紗(二):RSA原理驗證(ios篇)

該文章是《揭開RSA神秘面紗(ios篇)》系列第二篇,建議插隊的童鞋從第一篇開始看慎恒,傳送門:

<a href='http://www.reibang.com/p/84d925e4a57d'><h5>解開RSA神秘面紗(一):初識RSA</a>

初體驗

<p>心急的童鞋們橄唬,準(zhǔn)備好了么退疫,讓我們來體驗下RSA的工作原理吧。先來體驗下效果,github代碼地址:
<a >https://github.com/Vken-Chen/RSADemo1</a>
趕緊下載運行下
<p>簡單描述下Demo的使用:
<li>1勾哩,點擊TestEncrypt</li>
<li>2抗蠢,點擊TestDecrypt根盒,點開Log窗口,查看打印的日志</li>
<p>bingo物蝙!加密解密兩個步驟成功執(zhí)行了炎滞!是不是覺得RSA并不是想象中的那么難。細(xì)心的童鞋肯定會Debug單步去跟蹤過程(為這些童鞋點贊)诬乞。

1. 疑問

運行了Demo,第一反應(yīng)是高興册赛,第二反應(yīng)肯定會產(chǎn)生疑問:

<li>1,Demo中的公鑰和私鑰是怎么來的?</li>
<li>2,VKRSA和VKRSAKeyHelper這兩個類代碼看上去好復(fù)雜,怎么去理解?</li>

1.1 解析

回顧開篇講到的RSA的工作原理:
<li>1.生成私鑰和公鑰</li>
Demo中已經(jīng)自動集成了已經(jīng)生成好的公鑰和私鑰
<li>2.用公鑰對原始數(shù)據(jù)進行加密震嫉,得到密文</li>
Demo中VKRSA類中封裝了加密操作森瘪,外部調(diào)用即可
<li>3.用私鑰對密文進行解密,得到原始數(shù)據(jù)</li>
Demo中VKRSA類中封裝了解密操作票堵,外部調(diào)用即可

1.2 密鑰的生成

目前最通用生成RSA密鑰的方式通過openssl工具來簽發(fā)公鑰和私鑰扼睬。當(dāng)然也有其他方式,比如自己寫程序生成密鑰對悴势,java(Security包)窗宇、C++(openssl SDK)、OC(Security.framework)都有對應(yīng)的函數(shù)接口特纤。這里主要講通過openssl工具來生成密鑰對军俊。

1.2.1 openssl簽發(fā)密鑰對順序

當(dāng)然,如果沒有openssl的環(huán)境捧存,需要安裝一個粪躬,相信你肯定可以快速自行解決。密鑰對步驟如下:
<li><h5>1.生成私鑰文件</li>
terminal:openssl genrsa -out rsa_private_key.pem 1024

說明:“rsa_private_key.pem”為生成私鑰pem文件名昔穴,”1024“是指私鑰長度镰官。
執(zhí)行成功會在當(dāng)前文件夾下生成rsa_private_key.pem的私鑰文件
<li><h5>2.通過生成的私鑰文件簽發(fā)一個公鑰文件</li>
terminal:openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
說明:“rsa_private_key.pem”為第一步生成私鑰文件,"rsa_public_key.pem"為導(dǎo)出的公鑰文件
<li><h5>3.把生成的私鑰文件轉(zhuǎn)成pkcs8格式的pem文件</li>
terminal:openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out rsa_private_key_pkcs8.pem
注意:“ -out rsa_private_key_pkcs8.pem”必須加上,不然會把內(nèi)容輸出到terminal吗货,而且內(nèi)容還不同泳唠。具體原因未仔細(xì)查詢,如有同學(xué)知道卿操,請通知我警检,感謝!

整個流程如下圖
如下圖所示

key.png

1.2.2 密鑰文件格式說明

<p>文件生成了之后害淤,有的童鞋會問:

為什么這里的密鑰文件是pem格式的扇雕,與其他格式文件的差異是什么?比如:cer文件窥摄、der文件镶奉、csr文件、key文件、p12文件
<p>針對這個問題哨苛,請查看<a href='http://www.reibang.com/p/6927fe6f9813'>證書編碼以及文件格式匯總</a>

未完...下次更新

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸽凶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子建峭,更是在濱河造成了極大的恐慌玻侥,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亿蒸,死亡現(xiàn)場離奇詭異凑兰,居然都是意外死亡,警方通過查閱死者的電腦和手機边锁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門姑食,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茅坛,你說我怎么就攤上這事音半。” “怎么了贡蓖?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵曹鸠,是天一觀的道長。 經(jīng)常有香客問我摩梧,道長物延,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任仅父,我火速辦了婚禮,結(jié)果婚禮上浑吟,老公的妹妹穿的比我還像新娘笙纤。我一直安慰自己,他們只是感情好组力,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布省容。 她就那樣靜靜地躺著,像睡著了一般燎字。 火紅的嫁衣襯著肌膚如雪腥椒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天候衍,我揣著相機與錄音笼蛛,去河邊找鬼。 笑死蛉鹿,一個胖子當(dāng)著我的面吹牛滨砍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼惋戏,長吁一口氣:“原來是場噩夢啊……” “哼领追!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起响逢,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤绒窑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后舔亭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體些膨,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年分歇,在試婚紗的時候發(fā)現(xiàn)自己被綠了傀蓉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡职抡,死狀恐怖葬燎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缚甩,我是刑警寧澤谱净,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站擅威,受9級特大地震影響壕探,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜郊丛,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一李请、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧厉熟,春花似錦导盅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至绢片,卻和暖如春滤馍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背底循。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工巢株, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人此叠。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓纯续,卻偏偏與公主長得像随珠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子猬错,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

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

  • 嘟噥嘟噥:最近接到一個任務(wù):在客戶端動態(tài)生成RSA密鑰對窗看,然后向服務(wù)器發(fā)送這個密鑰對中的公鑰字符串,由服務(wù)器進行公...
    TimmyR閱讀 8,045評論 19 21
  • 2018-Read-Record 記錄我的2018學(xué)習(xí)歷程 文中首先解釋了加密解密的一些基礎(chǔ)知識和概念,然后通過一...
    NinthDay閱讀 11,306評論 8 105
  • 文中首先解釋了加密解密的一些基礎(chǔ)知識和概念逢唤,然后通過一個加密通信過程的例子說明了加密算法的作用拉讯,以及數(shù)字證書的出現(xiàn)...
    已認(rèn)證用戶閱讀 3,847評論 1 4
  • 文中首先解釋了加密解密的一些基礎(chǔ)知識和概念,然后通過一個加密通信過程的例子說明了加密算法的作用鳖藕,以及數(shù)字證書的出現(xiàn)...
    sunny沖哥閱讀 1,390評論 0 3
  • 2017/06/04(五月初十)夜魔慷,雨。 晚飯后和老伴一直在電視機前看2017世乒賽(本屆賽事是在德國的杜...
    木貞ma閱讀 291評論 2 1