iOS RSA 加密解密

前言

后臺(tái)給的公鑰糙捺,私鑰朝巫,不管是公鑰加密私鑰解密還是私鑰加密公鑰解密都是可以的坠陈,但是Mac 通過openssl生成的公鑰私鑰還有一點(diǎn)點(diǎn)問題连躏。(最大的問題還是獲取私鑰的不對(duì))剩岳。
感謝文章:iOS之RSA加密解密與后臺(tái)之間的雙向加密詳解
本文只是簡單說明Mac 通過openssl 生成公鑰私鑰,獲取私鑰入热,公鑰的時(shí)機(jī)以及注意點(diǎn)拍棕。

生成公鑰私鑰。

  1. cd 到一個(gè)文件夾勺良,比如RSA绰播。
    cd /Users/xxxx/Desktop/RSA

2.執(zhí)行Mac自帶的openssl命令。
openssl

3.生成私鑰
genrsa -out rsa_private_key.pem 1024

4.將私鑰轉(zhuǎn)成PKCS8的格式(必須轉(zhuǎn))格式轉(zhuǎn)好后立刻復(fù)制.切記后面使用的私鑰加密解密就是執(zhí)行命令行之后終端打印的私鑰尚困,而不是執(zhí)行命令行之后重新生成的私鑰蠢箩,(網(wǎng)上一些命令行是錯(cuò)誤的,一定要注意)事甜。

pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

WX20190108-180638@2x.png

復(fù)制上圖的私鑰保存谬泌。

5.生成公鑰。

rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

測試RSA加密解密逻谦。

GitHub RSA 一個(gè)工具類 Objective-C-RSA掌实,然后下載,后面加密解密使用邦马。

通過文本編輯打開剛才的RSA文件里的rsa_public_key.pem贱鼻,拿到公鑰宴卖。

私鑰使用第4步轉(zhuǎn)PKCS8格式后保存的私鑰。

測試結(jié)果:

NSString *publicKey = @"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0OiXHaees9Aj5h31YYGw5nfCUdS6MK0T5UrJAfIdwkUbadDOXclDVK+ftBMe+DVAn7xSORPi1cjiBBjU+lo/hmNGoDWQGgxr/LAkaJz3/A1Sv+S1d3deTc6SFN+toDQbpsx3jYOUrJM1B8olUI1a9f+DgzkF/sIKJ7V4Wh7XtlQIDAQAB";
    //私鑰
    NSString *privateKey = @"MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALQ6Jcdp56z0CPmHfVhgbDmd8JR1LowrRPlSskB8h3CRRtp0M5dyUNUr5+0Ex74NUCfvFI5E+LVyOIEGNT6Wj+GY0agNZAaDGv8sCRonPf8DVK/5LV3d15NzpIU362gNBumzHeNg5SskzUHyiVQjVr1/4ODOQX+wgontXhaHte2VAgMBAAECgYAljox63sXpk70fCq4DMay74P7WYQj/KrEn56S/rXOn8I48TcTGhYr0sT6WdM2O/EU83SSCdTsCzLebo4iK72Mx/VI1alKWSfyncfXi51gZePpgVaudTG9kcI8sszRG+P7zfPptr4HxZ7X2LveJy5myImqQomESEUvDVHdZCtIIgQJBANxT7Bev+LA+jH9gSV4Uc14B5YYabpLso39t/uhTaOdVNxV2eV2UAF1PGg2R3IMwlzHcjRkDDpBiWuXaxbTKCaECQQDRaCUb7J1mPDBrEIi1Aupho16b3Sy82vzZ9WGLgMl+eMKbSy0rAdJA10CtNKL2Gq7EGNoN4CpDPPulJTmm6Cd1AkAajH5BaHHmAtN5McgFbx9rr3zRyPOT/rHA1CdIJWzZmzoU+v6q2P+mPrbb9byFjmBZoMLbxbOGkGN1mQQDweihAkEAkAJ9Mr0AaeSOr7KJMWK16Tu+vpXWRHKdXQ9Ba/y/lThbLQ0AHQl9nJXrprICOBmVgspMeypkJiV0Mdht03joWQJAaF8kDoCNkpp++6aqVbqFBYysiW83AiHgL0JA5dhQ2XzIFYZIpLOsM+Je4yw9ppQ76DqePg6pqRKjR6m9Gatn+A==";
    //測試要加密的數(shù)據(jù)
    NSString *sourceStr = @"iOS端RSA加密";
    //公鑰加密
    NSString *encryptStr = [RSA encryptString:sourceStr publicKey:publicKey];
    //私鑰解密
    NSString *decrypeStr = [RSA decryptString:encryptStr privateKey:privateKey];
    
    NSLog(@"公鑰加密私鑰解密后的數(shù)據(jù) %@",decrypeStr);
    
    //私鑰加密
    NSString *encryptStr1 = [RSA encryptString:sourceStr privateKey:privateKey];
    //公鑰解密
    NSString *decrypeStr1 = [RSA decryptString:encryptStr1 publicKey:publicKey];
    NSLog(@"私鑰加密公鑰解密后的數(shù)據(jù) %@",decrypeStr1);

結(jié)果:

2019-01-08 18:17:48.834840+0800 RSAUtil[53592:4032334] 原始數(shù)據(jù):iOS端RSA加密 公鑰加密私鑰解密后的數(shù)據(jù) iOS端RSA加密
2019-01-08 18:17:48.843686+0800 RSAUtil[53592:4032334] 原始數(shù)據(jù):iOS端RSA加密 私鑰加密公鑰解密后的數(shù)據(jù) iOS端RSA加密

可以看到公鑰加密私鑰解密后的數(shù)據(jù)是正常的邻悬,私鑰加密公鑰解密后的數(shù)據(jù)是正常的嘱腥。

需要注意的是:RSA 文件中已經(jīng)對(duì)結(jié)果做了base64加密解密

end RSA 的加密簡單介紹到這里拘悦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末齿兔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子础米,更是在濱河造成了極大的恐慌分苇,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屁桑,死亡現(xiàn)場離奇詭異医寿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蘑斧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門靖秩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人竖瘾,你說我怎么就攤上這事沟突。” “怎么了捕传?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵惠拭,是天一觀的道長。 經(jīng)常有香客問我庸论,道長职辅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任聂示,我火速辦了婚禮域携,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鱼喉。我一直安慰自己秀鞭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布蒲凶。 她就那樣靜靜地躺著气筋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旋圆。 梳的紋絲不亂的頭發(fā)上宠默,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音灵巧,去河邊找鬼搀矫。 笑死抹沪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瓤球。 我是一名探鬼主播融欧,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼卦羡!你這毒婦竟也來了噪馏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤绿饵,失蹤者是張志新(化名)和其女友劉穎欠肾,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拟赊,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡刺桃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吸祟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瑟慈。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖屋匕,靈堂內(nèi)的尸體忽然破棺而出葛碧,到底是詐尸還是另有隱情,我是刑警寧澤炒瘟,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布吹埠,位于F島的核電站,受9級(jí)特大地震影響疮装,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜粘都,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一廓推、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧翩隧,春花似錦樊展、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至淑仆,卻和暖如春涝婉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蔗怠。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國打工墩弯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吩跋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓渔工,卻偏偏與公主長得像锌钮,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子引矩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

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

  • 最近項(xiàng)目中對(duì)接口進(jìn)行了rsa 加密梁丘。 寫下過程以便復(fù)習(xí) 公鑰私鑰一般是有后臺(tái)給的,這里為了方便 自己生成一對(duì)...
    肖無情閱讀 2,800評(píng)論 5 6
  • 嘟噥嘟噥:最近接到一個(gè)任務(wù):在客戶端動(dòng)態(tài)生成RSA密鑰對(duì)旺韭,然后向服務(wù)器發(fā)送這個(gè)密鑰對(duì)中的公鑰字符串氛谜,由服務(wù)器進(jìn)行公...
    TimmyR閱讀 8,012評(píng)論 19 21
  • 終端 cd Desktop/ 到桌面 執(zhí)行下面代碼 生成公鑰加密文件,私鑰解密文件茂翔。opensslOpenSS...
    seventhboy閱讀 1,688評(píng)論 3 0
  • 親子日記第179篇 今天又是充實(shí)的一天混蔼。上午忙工作棘手的事情,下午又參加了公司內(nèi)部組織的關(guān)于執(zhí)行力的培訓(xùn)珊燎,這一...
    子浩媽媽閱讀 163評(píng)論 0 0
  • “天鴿”肆虐來不及恢復(fù)悔政,“帕卡”勁勢而至……為自己安然在家晚吞,嘴邊有暖茶,手邊是書架谋国,而感恩自己擁有這份小幸...
    寶兒Bonnie閱讀 243評(píng)論 3 1