iOS系統(tǒng)庫(kù)中定義了軟件開發(fā)中常用的加解密算法,接口為C語(yǔ)言形式。具體包括了以下幾個(gè)大類:

1 #include <CommonCrypto/CommonCryptor.h>  //常用加解密算法2 #include <CommonCrypto/CommonDigest.h>  //摘要算法3 #include <CommonCrypto/CommonHMAC.h>4 #include <CommonCrypto/CommonKeyDerivation.h>5 #include <CommonCrypto/CommonSymmetricKeywrap.h>

  其中第一類常用加解密算法就包含了AES,DES,和已經(jīng)廢棄的RC4,第二類摘要算法,包括如MD5,SHA等。本文主要介紹AES,MD5,SHA三種最常用算法的實(shí)現(xiàn)。

  1 對(duì)稱密碼算法--AES

  AES主要應(yīng)用在關(guān)鍵數(shù)據(jù)和文件的的保密同時(shí)又需要解密的情形,其加密密鑰和解密密鑰相同,根據(jù)密鑰長(zhǎng)度分為128、192和256三種級(jí)別,密鑰長(zhǎng)度越大安全性也就越大,但性能也就越低,根據(jù)實(shí)際業(yè)務(wù)的安全要求來(lái)決定就好。通常情況,對(duì)一些關(guān)鍵數(shù)據(jù)進(jìn)行加密的對(duì)象都是字符串,加密結(jié)果也以字符串進(jìn)行保存,所以在設(shè)計(jì)接口的時(shí)候參數(shù)和返回值均為字符串。(關(guān)于關(guān)鍵參數(shù)的意義放在代碼后講解。)

  1.1 加密過(guò)程

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

 1 -(NSString *)aes256_encrypt:(NSString *)key 2 { 3     const char *cst