iOS AES 256加密
来源:互联网 发布:dm500s接收机 淘宝 编辑:程序博客网 时间:2024/06/05 06:33
#import <Foundation/Foundation.h>
@class NSString;
@interface NSData (Encryption)
- (NSData *)AES256EncryptWithKey:(NSString *)key; //加密
- (NSData *)AES256DecryptWithKey:(NSString *)key; //解密
@end
#import "NSData+AES.h"
#import <CommonCrypto/CommonCryptor.h>
@implementation NSData (Encryption)
- (NSData *)AES256EncryptWithKey:(NSString *)key {//加密
char keyPtr[kCCKeySizeAES256+1];
bzero(keyPtr,sizeof(keyPtr));
[key getCString:keyPtrmaxLength:sizeof(keyPtr)encoding:NSUTF8StringEncoding];
NSUInteger dataLength = [selflength];
size_t bufferSize = dataLength +kCCBlockSizeAES128;
void *buffer =malloc(bufferSize);
size_t numBytesEncrypted =0;
CCCryptorStatus cryptStatus =CCCrypt(kCCEncrypt,kCCAlgorithmAES128,
kCCOptionPKCS7Padding |kCCOptionECBMode,
keyPtr, kCCBlockSizeAES128,
NULL,
[selfbytes], dataLength,
buffer, bufferSize,
&numBytesEncrypted);
if (cryptStatus ==kCCSuccess) {
return [NSDatadataWithBytesNoCopy:buffer length:numBytesEncrypted];
}
free(buffer);
returnnil;
}
- (NSData *)AES256DecryptWithKey:(NSString *)key {//解密
char keyPtr[kCCKeySizeAES256+1];
bzero(keyPtr,sizeof(keyPtr));
[key getCString:keyPtrmaxLength:sizeof(keyPtr)encoding:NSUTF8StringEncoding];
NSUInteger dataLength = [selflength];
size_t bufferSize = dataLength +kCCBlockSizeAES128;
void *buffer =malloc(bufferSize);
size_t numBytesDecrypted =0;
CCCryptorStatus cryptStatus =CCCrypt(kCCDecrypt,kCCAlgorithmAES128,
kCCOptionPKCS7Padding |kCCOptionECBMode,
keyPtr, kCCBlockSizeAES128,
NULL,
[selfbytes], dataLength,
buffer, bufferSize,
&numBytesDecrypted);
if (cryptStatus ==kCCSuccess) {
return [NSDatadataWithBytesNoCopy:buffer length:numBytesDecrypted];
}
free(buffer);
returnnil;
}
@end
//test
NSString *testString =@"test";
NSData *aesData = [SecurityUtilencryptAESData:testString];
NSLog(@"AES加密:%@", aesData);
NSLog(@"AES解密:%@", [SecurityUtildecryptAESData:aesData]);
- iOS AES 256加密
- IOS加密 AES 256算法(EncryptAndDecrypt.h)
- ios AES 加密
- ios aes加密
- iOS AES 加密
- ios android aes 加密
- iOS加密:AES+Base64
- ios 学习登陆密码AES 加密
- ios 学习登陆密码AES 加密
- iOS AES的加密解密
- iOS AES的加密解密
- 使用iOS 原生AES加密
- AES 256 位 加密
- iOS加密方式(RSA签名加密、AES加密等)
- ios源码推荐:AES轻松加密数据
- iOS系统方法进行AES对称加密
- iOS客户端学习 AES加密和解密
- iOS AES 与SHA256加密字符串
- Stetho(Facebook出品)---Android调试器的使用
- 在SD卡创建文件夹、写入文件、读取文件
- 【redis】redis操作GeoLiteCity
- poj3468 A Simple Problem with Integers(线段树)
- iOS如何隐藏系统状态栏
- iOS AES 256加密
- 对List里面所有对象排序
- Linux下时间戳格式和标准时间格式的转换
- 如何做好网站SEO优化
- ROS系统命令学习
- FFmpeg资料
- HTTP 状态码
- 国产DCS厂商汇总
- R语言中绘图参数