• 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

  • 相关阅读:
    Spring+MyBatis
    MyBatis的关于批量数据操作的测试
    mysql插入数据后返回自增ID的方法,last_insert_id(),selectkey
    Java数据持久层框架 MyBatis之API学习五(Mapper XML 文件)
    Java数据持久层框架 MyBatis之API学习三(XML 映射配置文件)
    WebView高危接口安全检测
    Android studio Debug效率提升
    Android Bitmap圆角
    Android 瘦身攻略
    过滤Emoji表情😊
  • 原文地址:https://www.cnblogs.com/zk1947/p/7456652.html
Copyright © 2020-2023  润新知