国产探花免费观看_亚洲丰满少妇自慰呻吟_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;  }  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梓潼县| 建阳市| 武川县| 郯城县| 衢州市| 贡觉县| 神池县| 惠安县| 凌海市| 营口市| 井陉县| 孝义市| 临夏县| 深圳市| 锡林郭勒盟| 卓尼县| 铅山县| 视频| 富蕴县| 津市市| 彰化市| 黄梅县| 建德市| 剑川县| 民勤县| 奈曼旗| 蕲春县| 溧阳市| 汝城县| 贵溪市| 华容县| 南京市| 巴马| 阿克陶县| 山西省| 科尔| 武清区| 安图县| 芜湖县| 张北县| 河间市|