zoukankan      html  css  js  c++  java
  • iOS接口参数DES加密处理,最后附有demo下载地址

    应项目需求最近做了一下接口参数加密处理,开始搜了几种加密方式发现和Java后台加密解密内容不一致,最后选择了用DES加密方式,不废话直接上代码

    //加密
    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];
        memset(buffer, 0, sizeof(char));
        size_t numBytesEncrypted = 0;
        CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmDES,
                                              kCCOptionPKCS7Padding,
                                              [key UTF8String], kCCKeySizeDES,
                                              iv,
                                              [textData bytes], dataLength,
                                              buffer, 1024,
                                              &numBytesEncrypted);
        
        if (cryptStatus == kCCSuccess) {
            NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];
            ciphertext = [GTMBase64 stringByEncodingData:data];
        }
        return ciphertext;
    }
    
    //解密
    +(NSString *)decryptUseDES:(NSString *)cipherText key:(NSString *)key
    {
        NSString *plaintext = nil;
        NSData *cipherdata = [GTMBase64 decodeString:cipherText];
        unsigned char buffer[1024];
        memset(buffer, 0, sizeof(char));
        size_t numBytesDecrypted = 0;
        CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt, kCCAlgorithmDES,
                                              kCCOptionPKCS7Padding,
                                              [key UTF8String], kCCKeySizeDES,
                                              iv,
                                              [cipherdata bytes], [cipherdata length],
                                              buffer, 1024,
                                              &numBytesDecrypted);
        if(cryptStatus == kCCSuccess) {
            NSData *plaindata = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesDecrypted];
            plaintext = [[NSString alloc]initWithData:plaindata encoding:NSUTF8StringEncoding];
        }
        return plaintext;
    }

    demo下载地址 https://github.com/zk1947/DesDemo

  • 相关阅读:
    .htaccess是什么?.htaccess几个简单应用
    php提高效率
    php require和include区别
    excel的常用公式
    php时间日期处理
    json详解
    python列表-增强的赋值操作
    python列表-使用
    python列表-简单操作
    python列表-定义
  • 原文地址:https://www.cnblogs.com/zk1947/p/7456652.html
Copyright © 2011-2022 走看看