设为首页 加入收藏

TOP

基于OpenSSL的RSA加密应用(非算法)(二)
2017-10-12 18:08:10 】 浏览:10175
Tags:基于 OpenSSL RSA 加密 应用 算法
// CryptorTools.m // 加密/解密工具 // // Created by Erma on 15/4/26. // Copyright (c) 2015年 Erma. All rights reserved. // #import "CryptorTools.h" #import <CommonCrypto/CommonCrypto.h> // 填充模式 #define kTypeOfWrapPadding kSecPaddingPKCS1 @interface CryptorTools() { SecKeyRef _publicKeyRef; // 公钥引用 SecKeyRef _privateKeyRef; // 私钥引用 } @end @implementation CryptorTools #pragma mark - DES 加密/解密 #pragma mark 加密 + (NSData *)DESEncryptData:(NSData *)data keyString:(NSString *)keyString iv:(NSData *)iv { return [self CCCryptData:data algorithm:kCCAlgorithmDES operation:kCCEncrypt keyString:keyString iv:iv]; } + (NSString *)DESEncryptString:(NSString *)string keyString:(NSString *)keyString iv:(NSData *)iv { NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; NSData *result = [self DESEncryptData:data keyString:keyString iv:iv]; // BASE 64 编码 return [result base64EncodedStringWithOptions:0]; } #pragma mark 解密 + (NSData *)DESDecryptData:(NSData *)data keyString:(NSString *)keyString iv:(NSData *)iv { return [self CCCryptData:data algorithm:kCCAlgorithmDES operation:kCCDecrypt keyString:keyString iv:iv]; } + (NSString *)DESDecryptString:(NSString *)string keyString:(NSString *)keyString iv:(NSData *)iv { // BASE 64 解码 NSData *data = [[NSData alloc] initWithBase64EncodedString:string options:0]; NSData *result = [self DESDecryptData:data keyString:keyString iv:iv]; return [[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding]; } #pragma mark - AES 加密/解密 #pragma mark 加密 + (NSData *)AESEncryptData:(NSData *)data keyString:(NSString *)keyString iv:(NSData *)iv { return [self CCCryptData:data algorithm:kCCAlgorithmAES operation:kCCEncrypt keyString:keyString iv:iv]; } + (NSString *)AESEncryptString:(NSString *)string keyString:(NSString *)keyString iv:(NSData *)iv { NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; NSData *result = [self AESEncryptData:data keyString:keyString iv:iv]; // BASE 64 编码 return [result base64EncodedStringWithOptions:0]; } #pragma mark 解密 + (NSData *)AESDecryptData:(NSData *)data keyString:(NSString *)keyString iv:(NSData *)iv { return [self CCCryptData:data algorithm:kCCAlgorithmAES operation:kCCDecrypt keyString:keyString iv:iv]; } + (NSString *)AESDecryptString:(NSString *)string keyString:(NSString *)keyString iv:(NSData *)iv { // BASE 64 解码 NSData *data = [[NSData alloc] initWithBase64EncodedString:string options:0]; NSData *result = [self AESDecryptData:data keyString:keyString iv:iv]; return [[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding]; } #pragma mark 对称加密&解密核心方法 /// 对称加密&解密核心方法 /// /// @param data 加密/解密的二进制数据 /// @param algorithm 加密算法 /// @param operation 加密/解密操作 /// @param keyString 密钥字符串 /// @param iv IV 向量 /// /// @return 加密/解密结果 + (NSData *)CCCryptData:(NSData *)data algorithm:(CCAlgorithm)algorithm operation:(CCOperation)operation keyString:(NSString *)keyString iv:(NSData *)iv { int keySize = (algorithm == kCCAlgorithmAES) ? kCCKeySizeAES128 : kCCKeySizeDES; int blockSize = (algorithm == kCCAlgorithmAES) ? kCCBlockSizeAES128: kCCBlockSizeDES; // 设置密钥 NSData *keyData = [keyString dataUsingEncoding:NSUTF8StringEncoding]; uint8_t cKey[keySize]; bzero(cKey, sizeof(cKey)); [key
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 2/11/11
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇实现iOS图片等资源文件的热更新化.. 下一篇iOS多线程技术方案

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目