RSA算法簡介(RSA算法原理)
RSA加解密需要兩個(gè)鑰匙,一個(gè)公鑰一個(gè)私鑰。
1.使用publicKey可以對數(shù)據(jù)進(jìn)行加密
2.使用privateKey才能對數(shù)據(jù)進(jìn)行解密
單方向傳輸
用公鑰加密的數(shù)據(jù),只有私鑰能解開(可用于加密);
同時(shí),使用私鑰加密的數(shù)據(jù),只有公鑰能解開(簽名)。但是速度很慢(比私鑰加密慢100到1000倍),
公鑰的主要算法有RSA,還包括Blowfish,Diffie-Helman等
公鑰與私鑰
1.權(quán)威數(shù)字認(rèn)證機(jī)構(gòu)(CA)給所有通信主體(個(gè)人或組織)頒發(fā)公鑰和私鑰,彼此配對,分別唯一。
2.私鑰好比數(shù)字指紋,同時(shí)具有解密和加密功能。個(gè)人保管,不公開。
3.公鑰好比安全性極高的掛號信箱地址,公開。
公私鑰加解密舉例

設(shè)若甲有一份需保密的數(shù)字商業(yè)合同發(fā)給乙簽署。經(jīng)過如下步驟:
1. 甲用乙的公鑰對合同加密。
2. 密文從甲發(fā)送到乙。
3. 乙收到密文,并用自己的私鑰對其解密。
4. 解密正確,經(jīng)閱讀,乙用自己的私鑰對合同進(jìn)行簽署。
5. 乙用甲的公鑰對已經(jīng)簽署的合同進(jìn)行加密。
6. 乙將密文發(fā)給甲。
7. 甲用自己的私鑰將已簽署合同解密。
8. 解密正確,確認(rèn)簽署。
公私鑰加解密說明
從以上步驟,我們知道:
1. 用公鑰加密的密文能且只能用與其唯一配對的私鑰才能解開。
2. 如果某份密文被解開,那么肯定是密文的目標(biāo)信息主體解開的。
3. 私鑰因其唯一標(biāo)識所有者的屬性,被用于數(shù)字簽名,具有法律效力。
IOS對Security.framework的封裝,實(shí)現(xiàn)RSA非對稱加密解密??色@取公鑰和私鑰,可對數(shù)據(jù)進(jìn)行公鑰和私鑰的加解密。 這種方式需要對密匙對進(jìn)行處理, 根據(jù)public key生成證書, 通過private key生成p12格式的密匙.
iOS中使用RSA加密解密簡單實(shí)現(xiàn)
1.在開發(fā)工程中可以添加RSA加解密庫(地址https://github.com/524429264/Objective-C-RSA )

2.在線生成RSA密鑰對(http://web.chacuo.net/netrsakeypair )

3.導(dǎo)入#import "RSA.h"頭文件以及添加第二步生成的公私鑰,調(diào)用對應(yīng)的加解密方法

4.以下為加解密后的結(jié)果

在此感謝各位讀者的來訪,您的關(guān)注是我寫作分享的最大動力。
http://songshuhui.net/archives/84941