IOS AES加密 解密

2021-10-09 20:12:31 字數 2400 閱讀 1631

對資料進行操作處理過程中,需要對資料進行加密/解密處理,存在各種各樣的加密方式,此處介紹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...