iOS系统方法进行AES对称加密
来源:互联网 发布:个人信用数据库包含 编辑:程序博客网 时间:2024/06/06 20:39
废话不多说,直接上代码:
头文件:
- #import <Foundation/Foundation.h>
- @class NSString;
- @interface NSData (Encryption)
- - (NSData *)AES256ParmEncryptWithKey:(NSString *)key; //加密
- - (NSData *)AES256ParmDecryptWithKey:(NSString *)key; //解密
- @end
.m实现文件:
- #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;
- }
- http://blog.csdn.net/showhilllee/article/details/29597241
0 0
- iOS系统方法进行AES对称加密
- iOS系统方法进行AES对称加密
- iOS系统方法进行AES对称加密
- iOS系统方法进行AES对称加密
- iOS系统方法进行AES对称加密
- iOS CommonCrypto 对称加密 AES ecb,cbc
- 使用对称加密aes对文件进行zip加密解密
- AES对称加密工具Java实现,与iOS加密互通
- AES对称加密例子
- AES对称加密
- Java-对称加密-AES
- AES对称加密
- AES对称加密
- AES对称加密Util
- 理解AES对称加密
- AES加密对称算法
- 对称加密:AES
- 对称加密------AES
- 练习三1011
- python settimeout()函数
- Swift概览
- 把二元查找树转变成排序的双向链表
- Bestcoder round#33 解题报告
- iOS系统方法进行AES对称加密
- MongoDB分片集群部署
- Android手机在开发调试时logcat不显示输出信息的解决办法
- iOS应用崩溃日志分析
- JSP 遍历迭代 Enum 枚举
- HLSL内置函数一览
- RSA 加密及算法实现
- 获取手机系统大小、可用空间大小,设备可用内存及当前应用所占内存等
- 一些数据挖掘比赛经验