国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

OC des加密算法算法實(shí)現(xiàn)

2019-11-09 16:59:59
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

效果圖:

1.雙方約定好秘鑰

2.加密utl

////  EncryptUtl.m//  L22test////  Created by Liyanjun on 16/7/13.//  Copyright © 2016年 Liyanjun. All rights reserved.//#import "EncryptUtl.h"#import <CommonCrypto/CommonCryptor.h>#import "GTMBase64.h"@implementation EncryptUtl#PRagma mark- 產(chǎn)生密鑰+(NSString *)makeKey{    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];    [dateFormatter setDateFormat:@"yyyyMMdd HH:mm:ss"];            NSDate *date = [NSDate date];            NSString *firstDate = [dateFormatter stringFromDate:date];        return firstDate;}#pragma mark- 加密算法const Byte iv[] = {1,2,3,4,5,6,7,8};+(NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key{    NSString *ciphertext = nil;    NSData *textData = [plainText dataUsingEncoding:NSUTF8StringEncoding];    NSUInteger dataLength = [textData length];//    unsigned char buffer[1024];    size_t bufferSize = dataLength + kCCBlockSizeDES;    void *buffer = malloc(bufferSize);        memset(buffer, 0, sizeof(char));    size_t numBytesEncrypted = 0;    CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmDES,                                          kCCOptionPKCS7Padding,                                          [key UTF8String], kCCKeySizeDES,                                          iv,                                          [textData bytes], dataLength,                                          buffer, bufferSize,                                          &numBytesEncrypted);    NSLog(@"cryptStatus=%d",cryptStatus);    if (cryptStatus == kCCSuccess) {        NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];        ciphertext = [GTMBase64 encodeBase64Data:data];    }    return ciphertext;}+(NSString *)decryptUseDES:(NSString *)cipherText key:(NSString *)key{    NSString *plaintext = nil;    NSData *cipherdata = [GTMBase64 decodeString:cipherText];//    unsigned char buffer[102400];     NSUInteger dataLength = [cipherdata length];    size_t bufferSize = dataLength + kCCBlockSizeDES;    void *buffer = malloc(bufferSize);    memset(buffer, 0, sizeof(char));    size_t numBytesDecrypted = 0;    CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt, kCCAlgorithmDES,                                          kCCOptionPKCS7Padding,                                          [key UTF8String], kCCKeySizeDES,                                          iv,                                          [cipherdata bytes], [cipherdata length],                                          buffer, bufferSize,                                          &numBytesDecrypted);    if(cryptStatus == kCCSuccess) {        NSData *plaindata = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesDecrypted];        plaintext = [[NSString alloc]initWithData:plaindata encoding:NSUTF8StringEncoding];    }    return plaintext;}@end

加密測(cè)試文檔

////  main.m//  L22test////  Created by Liyanjun on 16/1/16.//  Copyright © 2016年 Liyanjun. All rights reserved.//#import <Foundation/Foundation.h>#import "EncryptUtl.h"#import "AppUtil.h"//方法1#define  POINT struct pointint main(int argc, const char * argv[]) {    @autoreleasepool {        NSString* fromString=@"測(cè)試加密數(shù)據(jù)";        NSString* key=@"b4196703d61af1bc87e20f2111143883";                NSLog(@"密鑰是%@",key);        NSString* toString1=[EncryptUtl encryptUseDES:fromString key:key];                NSLog(@"加密后是%@",toString1);        NSLog(@"解密后是%@",[EncryptUtl decryptUseDES:toString1 key:key]);            }    return 0;        }

demo下載:

http://download.csdn.net/detail/liyanjun201/9749070


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 囊谦县| 乐都县| 宁武县| 镇巴县| 尼勒克县| 叙永县| 旬阳县| 化德县| 桑植县| 蓬安县| 文水县| 嫩江县| 平陆县| 阿拉尔市| 朝阳县| 皋兰县| 万盛区| 洪江市| 龙口市| 扶余县| 河池市| 莲花县| 甘肃省| 阿拉善盟| 郁南县| 建昌县| 怀集县| 错那县| 庄浪县| 涞水县| 嘉义县| 开阳县| 招远市| 怀柔区| 康平县| 土默特右旗| 陆丰市| 梨树县| 富宁县| 千阳县| 平塘县|