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

首頁 > 系統 > iOS > 正文

iOS系統方法進行AES對稱加密

2019-11-09 14:02:29
字體:
來源:轉載
供稿:網友

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

頭文件:

[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實現文件:

[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;  }  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玉溪市| 昭苏县| 汝州市| 中牟县| 翁源县| 崇文区| 江陵县| 从江县| 海淀区| 呼伦贝尔市| 河东区| 凤阳县| 沛县| 河曲县| 陵川县| 家居| 张掖市| 龙山县| 拜泉县| 神木县| 韶关市| 湟源县| 巩义市| 石门县| 潞西市| 桂东县| 尼木县| 乐山市| 那曲县| 宁阳县| 阳谷县| 威海市| 香港 | 含山县| 阳西县| 韩城市| 霍邱县| 色达县| 泾源县| 陵川县| 大兴区|