国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 新昌县| 万州区| 墨玉县| 隆德县| 吉林省| 思南县| 宝兴县| 沙河市| 昌都县| 喀什市| 长武县| 奈曼旗| 亚东县| 封开县| 若羌县| 墨脱县| 梅河口市| 乌鲁木齐县| 蓝山县| 宁明县| 应用必备| 肥东县| 石家庄市| 五大连池市| 大洼县| 安岳县| 柳林县| 滦平县| 青海省| 哈巴河县| 上思县| 富蕴县| 平阴县| 双峰县| 鄂尔多斯市| 武功县| 金昌市| 高淳县| 城市| 旺苍县| 银川市|