您的位置:首页 > 移动开发 > IOS开发

iOS使用DES加解密

2013-03-06 13:02 363 查看
这里使用框架提供的des加解密库:
首先引入头文件 #import <CommonCrypto/CommonCryptor.h>
主要的加解密函数如下:

/*字符串加密 *参数 *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,                                          [key UTF8String], kCCKeySizeDES,                                          iv,                                          textBytes, dataLength,                                          buffer, 1024,                                          &numBytesEncrypted);    if (cryptStatus == kCCSuccess) {        NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];                ciphertext = [[[NSString alloc] initWithData:[GTMBase64 encodeData:data] encoding:NSUTF8StringEncoding] autorelease];    }    return ciphertext;} //解密+ (NSString *) decryptUseDES:(NSString*)cipherText key:(NSString*)key {    NSData* cipherData = [GTMBase64 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,                                           [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] autorelease];    }    return plainText;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: