ios中AES耿焊、MD5、Base64遍搞、RSA罗侯、國密 sm2加密

1、AES加密

導(dǎo)入NSData+AES.h文件
下載鏈接

這里AES在iOS加過密以后以nsdata的形式存下來溪猿,如果想以nsstring形式存儲(chǔ)钩杰,那么對(duì)nsdata進(jìn)行base64位編碼。
[測(cè)試AES的加密和解密的工具]http://tool.chacuo.net/cryptaes)

加密介紹

2诊县、MD5加密

下載鏈接

MD5加密讲弄,這是一種單向加密
壓縮性:任意長度的數(shù)據(jù),算出的MD5值長度都是固定的
容易計(jì)算:從原數(shù)據(jù)計(jì)算出MD5值很容易
抗修改性:對(duì)原數(shù)據(jù)進(jìn)行任何改動(dòng)依痊,哪怕只修改1個(gè)字節(jié)避除,所得到的MD5值都有很大區(qū)別。
強(qiáng)抗碰撞:已知原數(shù)據(jù)和其MD5值胸嘁,想找到一個(gè)具有相同MD5值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的瓶摆。
測(cè)試MD5的加密和解密的工具

3、Base64加密

下載鏈接

Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)代碼的編碼方式之一性宏,大家可以查看RFC2045~RFC2049群井,上面有MIME的詳細(xì)規(guī)范。Base64編碼可用于在HTTP環(huán)境下傳遞較長的標(biāo)識(shí)信息衔沼。例如蝌借,在Java Persistence系統(tǒng)Hibernate中,就采用了Base64來將一個(gè)較長的唯一標(biāo)識(shí)符(一般為128-bit的UUID)編碼為一個(gè)字符串指蚁,用作HTTP表單和HTTP GET URL中的參數(shù)菩佑。在其他應(yīng)用程序中,也常常需要把二進(jìn)制數(shù)據(jù)編碼為適合放在URL(包括隱藏表單域)中的形式凝化。此時(shí)稍坯,采用Base64編碼具有不可讀性,即所編碼的數(shù)據(jù)不會(huì)被人用肉眼所直接看到搓劫。

基本原理:
原本是 8個(gè)bit 一組表示數(shù)據(jù),改為 6個(gè)bit一組表示數(shù)據(jù),不足的部分補(bǔ)零,每 兩個(gè)0 用 一個(gè) = 表示
用base64 編碼之后,數(shù)據(jù)長度會(huì)變大,增加了大約 1/3 左右.(8-6)/6
可進(jìn)行反向解密
Xcode7.0 之后出現(xiàn)的
編碼有個(gè)非常顯著的特點(diǎn),末尾有個(gè) = 號(hào)

4瞧哟、RSA加密

一、使用openssl生成所需秘鑰文件
  生成環(huán)境是在mac系統(tǒng)下枪向,使用openssl進(jìn)行生成勤揩,首先打開終端,按下面這些步驟依次來做:
1秘蛔、生成模長為1024bit的私鑰文件private_key.pem

openssl genrsa -out private_key.pem 1024

  1. 生成證書請(qǐng)求文件rsaCertReq.csr

openssl req -new -key private_key.pem -out rsaCerReq.csr
注意:這一步會(huì)提示輸入國家陨亡、省份傍衡、mail等信息,可以根據(jù)實(shí)際情況填寫负蠕,或者全部不用填寫蛙埂,直接全部敲回車

  1. 生成證書rsaCert.crt,并設(shè)置有效時(shí)間為1年

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

  1. 生成供iOS使用的公鑰文件public_key.der

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

  1. 生成供iOS使用的私鑰文件private_key.p12

openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt
注意:這一步會(huì)提示給私鑰文件設(shè)置密碼遮糖,直接輸入想要設(shè)置密碼即可绣的,然后敲回車,然后再驗(yàn)證剛才設(shè)置的密碼欲账,再次輸入密碼屡江,然后敲回車,完畢赛不!
在解密時(shí)盼理,private_key.p12文件需要和這里設(shè)置的密碼配合使用,因此需要牢記此密碼

  1. 生成供Java使用的公鑰rsa_public_key.pem

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

  1. 生成供Java使用的私鑰pkcs8_private_key.pem

openssl pkcs8 -topk8 -in private_key.pem -out pkcs8_private_key.pem -nocrypt
全部執(zhí)行成功后俄删,會(huì)生成如下文件,其中public_key.der和private_key.p12就是iOS需要用到的文件奏路,如下圖:


二畴椰、將文件導(dǎo)入工程使用
1.新建工程, 并導(dǎo)入Security.framework框架, 如下圖:



2.導(dǎo)入秘鑰文件
導(dǎo)入.der和.p12格式的秘鑰文件, 如下圖:



用下面的方法導(dǎo)入
屏幕快照 2018-08-31 下午5.26.43.png

3.新建用于加密、解密的類RSAEncryptor, 并實(shí)現(xiàn)相關(guān)方法
新建RSAEncryptor類, 如下圖:



4鸽粉、導(dǎo)入#import "RSA.h"文件

下載鏈接

5斜脂、實(shí)現(xiàn)代碼


5、國密 sm2加密解密
demo下載地址
參考鏈接
加密原理介紹

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末触机,一起剝皮案震驚了整個(gè)濱河市帚戳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌儡首,老刑警劉巖片任,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蔬胯,居然都是意外死亡对供,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門氛濒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來产场,“玉大人,你說我怎么就攤上這事舞竿【┚埃” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵骗奖,是天一觀的道長确徙。 經(jīng)常有香客問我醒串,道長,這世上最難降的妖魔是什么米愿? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任厦凤,我火速辦了婚禮,結(jié)果婚禮上育苟,老公的妹妹穿的比我還像新娘较鼓。我一直安慰自己,他們只是感情好违柏,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布博烂。 她就那樣靜靜地躺著,像睡著了一般漱竖。 火紅的嫁衣襯著肌膚如雪禽篱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天馍惹,我揣著相機(jī)與錄音躺率,去河邊找鬼。 笑死万矾,一個(gè)胖子當(dāng)著我的面吹牛悼吱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播良狈,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼后添,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了薪丁?” 一聲冷哼從身側(cè)響起遇西,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎严嗜,沒想到半個(gè)月后粱檀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漫玄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年梧税,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片称近。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡第队,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刨秆,到底是詐尸還是另有隱情凳谦,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布衡未,位于F島的核電站尸执,受9級(jí)特大地震影響家凯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜如失,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一绊诲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧褪贵,春花似錦掂之、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至槽卫,卻和暖如春跟压,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背歼培。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工震蒋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人躲庄。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓喷好,卻偏偏與公主長得像,于是被迫代替她去往敵國和親读跷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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

  • /**ios常見的幾種加密方法: 普通的加密方法是講密碼進(jìn)行加密后保存到用戶偏好設(shè)置( [NSUserDefaul...
    彬至睢陽閱讀 2,912評(píng)論 0 7
  • 之前的項(xiàng)目中接觸過一些加密的方法禾唁,也沒有太仔細(xì)的進(jìn)行記錄和研究效览。最近在寫SDK時(shí),加密模塊的占比相當(dāng)之大荡短;借此時(shí)機(jī)...
    過半_e764閱讀 561評(píng)論 0 0
  • 先暴露一下自己的年齡丐枉,已工作3年以上。普通員工一枚掘托,非成功人士瘦锹,但也算是經(jīng)歷過了。自省總結(jié)了一點(diǎn)職場(chǎng)經(jīng)驗(yàn)想跟小鮮...
    momooo閱讀 250評(píng)論 0 0
  • 默認(rèn)情況下hive訪問不到子目錄下面數(shù)據(jù)的問題 我們通過把hdp的數(shù)據(jù)遷移到了cdh闪盔,然后發(fā)現(xiàn)一些hive表存儲(chǔ)的...
    LOC_Thomas閱讀 3,152評(píng)論 0 1
  • 日念家人一好處弯院,念力加持享幸福! 【先生好】他說這輩子最倒霉的事就是認(rèn)識(shí)我泪掀!傷人吧听绳!那我也不能把錢投到毫無保障的項(xiàng)...
    風(fēng)瀟瀟blj閱讀 140評(píng)論 0 0