国产探花免费观看_亚洲丰满少妇自慰呻吟_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;  }  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 太仆寺旗| 民勤县| 红原县| 金湖县| 晋城| 内江市| 云南省| 宁海县| 道孚县| 勃利县| 博野县| 彩票| 湄潭县| 民和| 昭平县| 贵阳市| 昌黎县| 青海省| 施秉县| 寿光市| 库尔勒市| 桐柏县| 绿春县| 凌源市| 禹城市| 九江县| 抚顺市| 淮北市| 沭阳县| 华亭县| 应城市| 门头沟区| 房山区| 阳信县| 扎兰屯市| 阿荣旗| 逊克县| 额济纳旗| 额济纳旗| 文化| 宾川县|