對資料進行操作處理過程中,需要對資料進行加密/解密處理,存在各種各樣的加密方式,此處介紹aes對稱加密/解密。
aes加密/解密過程結合了base64編碼/解密,利用唯一秘鑰key(aes具體描述此處不作詳細介紹),匯入如下庫檔案:
#import #import
aes加密/解密過程,必須保證其秘鑰key一致,否則會導致解密過程失敗。
aesutil.h
#import #import #import /**
* aes工具類
*/@inte***ce aesutil : nsobject
/** * aes加密
*/+ (nsstring *)aesencrypt:(nsstring *)sourcestr;
/** * aes解密
*/+ (nsstring *)aesdecrypt:(nsstring *)secretstr;
@end
aesutil.m
#import #import "aesutil.h"
@inte***ce aesutil()
@end
// 秘鑰key
const nsstring *aeskey = @"abcdefghabcdefgh";
@implementation aesutil
+ (nsstring *)aesencrypt:(nsstring *)sourcestr
char keyptr[kcckeysizeaes256 + 1];
bzero(keyptr, sizeof(keyptr));
[aeskey getcstring:keyptr maxlength:sizeof(keyptr) encoding:nsutf8stringencoding];
nsdata *sourcedata = [sourcestr datausingencoding:nsutf8stringencoding];
nsuinteger datalength = [sourcedata length];
size_t buffersize = datalength + kccblocksizeaes128;
void *buffer = malloc(buffersize);
size_t numbytesencrypted = 0;
cccryptorstatus cryptstatus = cccrypt(kccencrypt, kccalgorithmaes128, kccoptionpkcs7padding | kccoptionecbmode, keyptr, kccblocksizeaes128, null, [sourcedata bytes], datalength, buffer, buffersize, &numbytesencrypted);
if (cryptstatus == kccsuccess) else
}+ (nsstring *)aesdecrypt:(nsstring *)secretstr
//先對加密的字串進行base64解碼
nsdata *decodedata = [[nsdata alloc] initwithbase64encodedstring:secretstr options:nsdatabase64decodingignoreunknowncharacters];
char keyptr[kcckeysizeaes256 + 1];
bzero(keyptr, sizeof(keyptr));
[aeskey getcstring:keyptr maxlength:sizeof(keyptr) encoding:nsutf8stringencoding];
nsuinteger datalength = [decodedata length];
size_t buffersize = datalength + kccblocksizeaes128;
void *buffer = malloc(buffersize);
size_t numbytesdecrypted = 0;
cccryptorstatus cryptstatus = cccrypt(kccdecrypt, kccalgorithmaes128, kccoptionpkcs7padding | kccoptionecbmode, keyptr, kccblocksizeaes128, null, [decodedata bytes], datalength, buffer, buffersize, &numbytesdecrypted);
if (cryptstatus == kccsuccess) else
}@end
注:秘鑰key size不超過16位元組。 iOS AES的加密解密
主要是要得到加密後的原來的字元創,md5無法得到原有的,僅僅能用aes base64 主要看另外2個類檔案。import class nsstring inte ce nsdata nsdata aes nsdata aes128encryptwithkey nsstring key 加密 nsda...
iOS AES加密 解密 3DES加密 解密
加密步驟 字串經過aes加密得到nsdata型別,然後在對加密後的nsdata型別進行base64轉碼,得出最終的字串。解密步驟 對要解密的字串進行base64解碼,然後進行解密,得出原字串。首先建立乙個nsdata jkencrypt類別,寫完的.件如下 import inte ce nsdata...
des vue 加密解密 DES加密 解密
外掛程式描述 des data encryption standard 是發明最早的最廣泛使用的分組對稱加密演算法。des演算法簡介 des data encryption standard 是發明最早的最廣泛使用的分組對稱加密演算法。des演算法的入口引數有三個 key data mode。其中k...