RSA+AES(128位/CBC/PKCS5Padding)加解密

最近在搞項(xiàng)目中的加解密相關(guān),選了幾種方案捏膨,最終定下來(lái)用RSA+AES進(jìn)行加解密秧均,在此記錄一下,如果有問(wèn)題号涯,大家可以一起探討下~
我們項(xiàng)目中的加密流程是:
1.客戶端生成AES隨機(jī)128位秘鑰(base64字符串)目胡,得到key為aeskey
2.服務(wù)端生成兩對(duì)RSA公私鑰,clientPrivate,clientPublick,servePrivate,servePublick
3.客戶端使用clientPrivate對(duì)明文數(shù)據(jù)生成數(shù)字簽名sign
4.將第3步生成的sign作為入?yún)⒘纯欤尤氲秸?qǐng)求參數(shù)中誉己,然后將整體入?yún)⑥D(zhuǎn)換為json串
5.客戶端使用aeskey對(duì)json數(shù)據(jù)進(jìn)行加密得到密文(encryptData)
6.客戶端使用服務(wù)端的servePublick公鑰對(duì)aeskey進(jìn)行加密,得到密文(encryptKey)
7.分別將encryptData和encryptKey作為參數(shù)傳輸給服務(wù)器端
以上為客戶端向服務(wù)端傳輸加密數(shù)據(jù)的過(guò)程域蜗。
客戶端進(jìn)行解密操作的話巨双,流程反過(guò)來(lái)即可噪猾。

報(bào)文封裝

  • 1.請(qǐng)求端用己方的私鑰對(duì)原始請(qǐng)求報(bào)文進(jìn)行簽名
  • 2.組裝JSON報(bào)文格式如下:
 {
 "content":原始請(qǐng)求報(bào)文,
 "sign":簽名字符串
 }
  • 3.請(qǐng)求端生成AES秘鑰筑累,并以該秘鑰對(duì)第2步生成的JSON字符串進(jìn)行加密(結(jié)果為Base64字符串)
  • 4.請(qǐng)求端用對(duì)方公鑰對(duì)AES密鑰字符串(hexString格式)進(jìn)行RSA加密(結(jié)果為Base64字符串)
  • 5.請(qǐng)求端組裝JSON報(bào)文畏妖,格式如下:
 {
 "package1": 第3步的加密結(jié)果,
 "package2": 第4步的加密結(jié)果
 }

解密和驗(yàn)簽過(guò)程:

  • 1.響應(yīng)端接到請(qǐng)求報(bào)文,用己方RSA私鑰對(duì)報(bào)文中的package2字段進(jìn)行RSA解密疼阔,得到AES秘鑰字符串
  • 2.用1得到的AES秘鑰字符串,對(duì)請(qǐng)求報(bào)文中的package1字段進(jìn)行解密
  • 3.對(duì)2解密得到的JSON報(bào)文進(jìn)行解析半夷,content字段為原始報(bào)文婆廊,sign字段為簽名。使用RSA公鑰對(duì)content和sign進(jìn)行驗(yàn)簽巫橄。

秘鑰規(guī)格:

   字符串編碼 UTF-8

   RSA key長(zhǎng)度2048
   RSA 加解密時(shí)的算法: RSA/ECB/PKCS1Padding
   RSA 簽名時(shí)的算法: SHA256withRSA
   
   AES key長(zhǎng)度128位
   AES 加解密時(shí)的算法: AES/CBC/PKCS5Padding

其中生成128位隨機(jī)秘鑰代碼:

- (NSString *)random128BitAESKey {
    unsigned char buf[16];
    arc4random_buf(buf, sizeof(buf));
    NSData *data = [NSData dataWithBytes:buf length:sizeof(buf)];
    NSData *base64Data = [data base64EncodedDataWithOptions:0];
    NSString * stringBase64 = [[NSString alloc] initWithData:base64Data encoding:0];
    return stringBase64;
}
?著作權(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)店門蔬蕊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人哥谷,你說(shuō)我怎么就攤上這事岸夯。” “怎么了们妥?”我有些...
    開(kāi)封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵猜扮,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我监婶,道長(zhǎng)旅赢,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任压储,我火速辦了婚禮鲜漩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘集惋。我一直安慰自己孕似,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布刮刑。 她就那樣靜靜地躺著喉祭,像睡著了一般养渴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泛烙,一...
    開(kāi)封第一講書人閱讀 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)封第一講書人閱讀 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)封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)勘畔。三九已至所灸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間炫七,已是汗流浹背爬立。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 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)容