1.AES - 對(duì)稱(chēng)密碼算法
AES 主要應(yīng)用在數(shù)據(jù)和文件的加密保存许帐,需要了解工作模式剿涮,初始化向量照弥,填充模式
kCCKeySizeAES256
密鑰長(zhǎng)度腻异,枚舉類(lèi)型,還有128这揣,192兩種悔常。
kCCBlockSizeAES128
塊長(zhǎng)度,固定值 16(字節(jié)给赞,128位)机打,由AES算法內(nèi)部加密細(xì)節(jié)決定,不過(guò)哪種方式片迅、模式残邀,均為此。
kCCAlgorithmAES
算法名稱(chēng)柑蛇,不區(qū)分是128芥挣、192還是258。kCCAlgorithmAES128只是歷史原因耻台,與kCCAlgorithmAES值相同空免。
kCCOptionPKCS7Padding
填充模式,AES算法內(nèi)部加密細(xì)節(jié)決定AES的明文必須為64位的整數(shù)倍盆耽,如果位數(shù)不足蹋砚,則需要補(bǔ)齊。kCCOptionPKCS7Padding表示征字,缺幾位就補(bǔ)幾個(gè)幾都弹。比如缺少3位,則在明文后補(bǔ)3個(gè)3匙姜。iOS種只有這一種補(bǔ)齊方式畅厢,其它平臺(tái)方式更多,如kCCOptionPKCS5Padding氮昧,kCCOptionZeroPadding框杜。如果要實(shí)現(xiàn)一致性,則此處其它平臺(tái)也要使用kCCOptionPKCS7Padding袖肥。
kCCOptionECBMode
工作模式咪辱,電子密碼本模式。此模式不需要初始化向量椎组。iOS種只有兩種方式油狂,默認(rèn)是CBC模式,即塊加密模式。標(biāo)準(zhǔn)的AES除此外還有其它如CTR,CFB等方式专筷。kCCOptionECBMode模式下多平臺(tái)的要求不高弱贼,推薦使用。CBC模式磷蛹,要求提供相同的初始化向量吮旅,多個(gè)平臺(tái)都要保持一致,工作量加大味咳,安全性更高庇勃,適合更高要求的場(chǎng)景使用。
2.摘要算法- 單向不可逆槽驶,速度快? (哈希算法hash)
2.1 消息摘要算法MD5
MD5算法將任意明文(不為空)映射位32位字符串责嚷。
2.2 安全散列算法SHA
SHA按結(jié)果的位數(shù)分為256、484捺檬、512三種基本方式再层,根據(jù)對(duì)結(jié)果的要求而選擇即可贸铜。通過(guò)CC_SHA256_DIGEST_LENGTH等枚舉類(lèi)型進(jìn)行設(shè)置堡纬。
3.非對(duì)稱(chēng)算法
3.1 RSA 公鑰(鎖頭-加密用)私鑰(鑰匙-解密用)
客戶(hù)端發(fā)送請(qǐng)求向服務(wù)器,服務(wù)器將公鑰發(fā)送給客戶(hù)端,客戶(hù)端(TSL)驗(yàn)證公鑰是否有效蒿秦,有效則生成一個(gè)隨機(jī)數(shù)烤镐,客戶(hù)端用公鑰對(duì)隨機(jī)數(shù)加密發(fā)送給服務(wù)器,服務(wù)器用私鑰對(duì)密文解密得到隨機(jī)數(shù)棍鳖。之后的通信用隨機(jī)數(shù)進(jìn)行加密解密炮叶。
來(lái)源:
iOS http & https & 網(wǎng)絡(luò)請(qǐng)求過(guò)程 - 簡(jiǎn)書(shū)
iOS常用加密算法介紹和代碼實(shí)踐 - CocoaChina_讓移動(dòng)開(kāi)發(fā)更簡(jiǎn)單
iOS--加解密(對(duì)稱(chēng),非對(duì)稱(chēng))(AES DES base64這里都有)渡处,數(shù)字簽名镜悉,cookie ()