IOS AES
来源:互联网 发布:asp网络验证源码 编辑:程序博客网 时间:2024/06/07 03:08
For NSData+AES.h
#import#import@interface NSData (AES)- (NSData*) EncryptAES: (NSString *) key;- (NSData *) DecryptAES: (NSString *) key;@end
For NSData+AES.m
#import"NSData+AES.h" @implementationNSData(AES) - (NSData*) EncryptAES:(NSString *) key { char keyPtr[kCCKeySizeAES256+1]; bzero( keyPtr, sizeof(keyPtr) ); [key getCString: keyPtr maxLength:sizeof(keyPtr) encoding: NSUTF16StringEncoding]; size_t numBytesEncrypted = 0; NSUInteger dataLength = [self length]; size_t bufferSize = dataLength +kCCBlockSizeAES128; void *buffer = malloc(bufferSize); CCCryptorStatus result = CCCrypt( kCCEncrypt,kCCAlgorithmAES128, kCCOptionPKCS7Padding, keyPtr,kCCKeySizeAES256, NULL, [selfbytes], [self length], buffer,bufferSize, &numBytesEncrypted ); if( result == kCCSuccess ) return[NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted]; return nil; } - (NSData *) DecryptAES:(NSString *) key { char keyPtr[kCCKeySizeAES256+1]; bzero( keyPtr, sizeof(keyPtr) ); [key getCString: keyPtr maxLength:sizeof(keyPtr) encoding: NSUTF16StringEncoding]; size_t numBytesEncrypted = 0; NSUInteger dataLength = [self length]; size_t bufferSize = dataLength +kCCBlockSizeAES128; void *buffer_decrypt = malloc(bufferSize); CCCryptorStatus result = CCCrypt( kCCDecrypt ,kCCAlgorithmAES128, kCCOptionPKCS7Padding, keyPtr,kCCKeySizeAES256, NULL, [selfbytes], [self length], buffer_decrypt, bufferSize, &numBytesEncrypted ); if( result == kCCSuccess ) return [NSDatadataWithBytesNoCopy:buffer_decrypt length:numBytesEncrypted]; return nil; } @endUsage: Import NSData+AES.h//EncryptionNSString *myString = @"This is the content";NSString *key = @"my secret key";NSData *data = [myStringdataUsingEncoding:NSUTF8StringEncoding];NSData *encryptedData = [data EncryptAES:key];//DecryptionNSString *decryptedString = [[[NSString alloc]initWithData:[encryptedData DecryptAES:key]encoding:NSUTF8StringEncoding] autorelease]; // remove autoreleaseif using ARC
0 0
- IOS AES
- iOS-AES加解密
- ios AES 加密
- ios aes加密
- iOS AES 256加密
- iOS AES 加密
- ios android aes 加密
- IOS中的AES加密算法
- iOS加密:AES+Base64
- ios 学习登陆密码AES 加密
- ios 学习登陆密码AES 加密
- iOS AES的加密解密
- iOS开发-数据加密算法AES
- ios AES、DES、MD5使用
- iOS AES的加密解密
- 使用iOS 原生AES加密
- AES
- AES
- MySQL:Compare two tables
- 花生壳动态域名不稳定
- mac 在终端如何进入名称带空格的目录
- tcpdump监听http-截包
- PHP DAEMON
- IOS AES
- NSDataAdditions (BASE64 ZIP..)
- Spring JMX客户端连接代码
- RSA Encryption in iOS and Decrypt It Using PHP
- CPC、CPM、CPA、CPS
- NSUserDefaults not get saved sometime
- 生产者消费者模型
- MYSQL to SQLite 脚本
- 不建议使用rowid作为sqlite主键