国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

iOS系統(tǒng)方法進(jìn)行AES對(duì)稱加密

2019-11-09 14:55:36
字體:
供稿:網(wǎng)友

廢話不多說,直接上代碼:

頭文件:

[objc] view plain copy PRint?在CODE上查看代碼片#import <Foundation/Foundation.h>    @class NSString;    @interface NSData (Encryption)    - (NSData *)AES256ParmEncryptWithKey:(NSString *)key;   //加密  - (NSData *)AES256ParmDecryptWithKey:(NSString *)key;   //解密    @end  

.m實(shí)現(xiàn)文件:

[objc] view%20plain copy print?派生到我的代碼片#import "Encryption.h"  #import <CommonCrypto/CommonCryptor.h>    @implementation NSData (Encryption)    - (NSData *)AES256ParmEncryptWithKey:(NSString *)key   //加密  {      char keyPtr[kCCKeySizeAES256+1];      bzero(keyPtr, sizeof(keyPtr));      [key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];      NSUInteger dataLength = [self length];      size_t bufferSize = dataLength + kCCBlockSizeAES128;      voidvoid *buffer = malloc(bufferSize);      size_t numBytesEncrypted = 0;      CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmAES128,                                            kCCOptionPKCS7Padding | kCCOptionECBMode,                                            keyPtr, kCCBlockSizeAES128,                                            NULL,                                            [self bytes], dataLength,                                            buffer, bufferSize,                                            &numBytesEncrypted);      if (cryptStatus == kCCSuccess) {          return [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted];      }      free(buffer);      return nil;  }      - (NSData *)AES256ParmDecryptWithKey:(NSString *)key   //解密  {      char keyPtr[kCCKeySizeAES256+1];      bzero(keyPtr, sizeof(keyPtr));      [key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];      NSUInteger dataLength = [self length];      size_t bufferSize = dataLength + kCCBlockSizeAES128;      voidvoid *buffer = malloc(bufferSize);      size_t numBytesDecrypted = 0;      CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt, kCCAlgorithmAES128,                                            kCCOptionPKCS7Padding | kCCOptionECBMode,                                            keyPtr, kCCBlockSizeAES128,                                            NULL,                                            [self bytes], dataLength,                                            buffer, bufferSize,                                            &numBytesDecrypted);      if (cryptStatus == kCCSuccess) {          return [NSData dataWithBytesNoCopy:buffer length:numBytesDecrypted];      }      free(buffer);      return nil;  }  
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 全椒县| 涪陵区| 丰原市| 德清县| 同江市| 南江县| 潼关县| 波密县| 休宁县| 曲周县| 同江市| 微山县| 新干县| 松溪县| 陇南市| 延川县| 定陶县| 龙陵县| 建阳市| 齐齐哈尔市| 黄陵县| 承德市| 登封市| 揭西县| 定远县| 进贤县| 佛山市| 绥阳县| 曲麻莱县| 怀集县| 怀柔区| 拉萨市| 苍山县| 都兰县| 应城市| 渑池县| 苗栗县| 沁水县| 航空| 牟定县| 安岳县|