ios的DES加密
2016-09-11 11:01
323 查看
应用场景:
保存一些nsstring不希望别人看到,就简单加密,提取时解密
加密的原理看这里点击打开链接
新建一个DESTool的类,使用方便,不使用
将h和m文件贴到如下
h文件
m文件
保存一些nsstring不希望别人看到,就简单加密,提取时解密
加密的原理看这里点击打开链接
新建一个DESTool的类,使用方便,不使用
开源库 GTMBase64 转码
ios7之后自己支持了base64的转码,所以不要再引入一个库了将h和m文件贴到如下
h文件
// // DESTool.h // testDES // // Created by apple on 16/9/11. // Copyright © 2016年 apple. All rights reserved. // #import <Foundation/Foundation.h> @interface DESTool : NSObject + (NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key; + (NSString *) decryptUseDES:(NSString*)cipherText key:(NSString*)key; @end
m文件
// // DESTool.m // testDES // // Created by apple on 16/9/11. // Copyright © 2016年 apple. All rights reserved. // #import "DESTool.h" #import <CommonCrypto/CommonCryptor.h> @implementation DESTool /*字符串加密 *参数 *plainText : 加密明文 *key : 密钥 64位 */ + (NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key { NSString *ciphertext = nil; const char *textBytes = [plainText UTF8String]; NSUInteger dataLength = [plainText length]; unsigned char buffer[1024]; memset(buffer, 0, sizeof(char)); Byte iv[] = {1,2,3,4,5,6,7,8}; size_t numBytesEncrypted = 0; CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmDES, kCCOptionPKCS7Padding|kCCOptionECBMode, [key UTF8String], kCCKeySizeDES, iv, textBytes, dataLength, buffer, 1024, &numBytesEncrypted); if (cryptStatus == kCCSuccess) { NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted]; ciphertext = [self encodeData:data]; } return ciphertext; } //解密 + (NSString *) decryptUseDES:(NSString*)cipherText key:(NSString*)key { NSData* cipherData = [self decodeString:cipherText]; unsigned char buffer[1024]; memset(buffer, 0, sizeof(char)); size_t numBytesDecrypted = 0; Byte iv[] = {1,2,3,4,5,6,7,8}; CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt, kCCAlgorithmDES, kCCOptionPKCS7Padding|kCCOptionECBMode, [key UTF8String], kCCKeySizeDES, iv, [cipherData bytes], [cipherData length], buffer, 1024, &numBytesDecrypted); NSString* plainText = nil; if (cryptStatus == kCCSuccess) { NSData* data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesDecrypted]; plainText = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; } return plainText; } + (NSString *)encodeData:(NSData *)originData{ NSString* encodeResult = [originData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]; // NSString* encodeResult = [originData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]; return encodeResult; } + (NSData *)decodeString:(NSString *)encodeResult{ NSData* decodeData = [[NSData alloc] initWithBase64EncodedString:encodeResult options:0]; // NSString* decodeStr = [[NSString alloc] initWithData:decodeData encoding:NSASCIIStringEncoding]; return decodeData; } @end
相关文章推荐
- 关于Des加密(Android与ios 与后台java服务器之间的加密解密
- iOS下的DES加密
- ios DES加密
- iOS 常见的加密形式: AES加密, DES加密, MD5加密,SHA1加密, BASE64加密
- DES加密解密—Android IOS C#互通
- 关于 Des加密(Android与ios 与后台java服务器之间的加密解密)
- IOS-plist文件DES加密
- 关于DES加密,适用Andriod、iOS与JAVA后台
- ios des加密与解密(对应JAVA加解密)
- iOS下的DES加密
- IOS-plist文件DES加密
- iOS DES加密与3DES加密
- 关于 Des加密(Android与ios 与后台java服务器之间的加密解密)
- IOS下DES加密
- iOS下的DES加密
- iOS下的DES加密问题汇总
- IOS 纯DES加密 与 使用base64加密
- IOS、java支持DES加密
- 关于 Des加密(Android与ios 与后台java服务器之间的加密解密)
- iOS下的DES加密