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

首頁 > 學院 > 開發設計 > 正文

OC des加密算法算法實現

2019-11-09 17:59:28
字體:
來源:轉載
供稿:網友

效果圖:

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- 產生密鑰+(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

加密測試文檔

////  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=@"測試加密數據";        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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 密云县| 正定县| 漠河县| 荆门市| 贵德县| 民丰县| 合山市| 桂东县| 吉木萨尔县| 南京市| 阜平县| 华蓥市| 永州市| 凤台县| 彰化县| 罗平县| 隆安县| 东乌珠穆沁旗| 海南省| 香河县| 大埔区| 泌阳县| 镇原县| 延安市| 蒲江县| 巩留县| 吉木萨尔县| 孝义市| 德阳市| 富平县| 曲沃县| 南皮县| 闵行区| 普安县| 巴南区| 四子王旗| 衡东县| 米脂县| 屯昌县| 屯留县| 泰宁县|