美文网首页
iOS开发中DES/CBC加密

iOS开发中DES/CBC加密

作者: 不疯魔难以成佛 | 来源:发表于2017-04-13 14:13 被阅读0次

iOS开发中DES/CBC/PKCS5Padding方式的加密

<pre><code>

import <CommonCrypto/CommonCryptor.h>

+(NSString **)encryptUseDES:(NSString *)plainText andKey:(NSString *)authKey andIv:(NSString *)authIv{

const void *iv  = (const void *) [authIv UTF8String];

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,
                                      [authKey UTF8String],
                                      kCCKeySizeDES,
                                      iv,
                                      [textData bytes],
                                      dataLength,
                                      buffer,
                                      1024,
                                      &numBytesEncrypted);
if (cryptStatus == kCCSuccess) {
    NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];
    NSString *oriStr = [NSString stringWithFormat:@"%@",data];
    NSCharacterSet *cSet = [NSCharacterSet characterSetWithCharactersInString:@"< >"];
    ciphertext = [[oriStr componentsSeparatedByCharactersInSet:cSet] componentsJoinedByString:@""];

}

return ciphertext;

}

二、

-(NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key
{

      NSString *ciphertext = nil;

      const char  *textBytes = [plainText UTF8String];
      NSUInteger dataLength = [plainText length];
      unsigned char buffer[1024];
      memset(buffer, 0, sizeof(char));
      const void *iv = (const void *)[key UTF8String];
      size_t numBytesEncrypted = 0;

      CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmDES,
                                      kCCOptionPKCS7Padding,
                                      [key UTF8String], kCCKeySizeDES,
                                      iv,
                                      textBytes, dataLength,
                                      buffer, 1024,
                                      &numBytesEncrypted);


      if (cryptStatus == kCCSuccess) {
      NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];
      ciphertext = [[NSString alloc] initWithData:[GTMBase64 encodeData:data] encoding:NSUTF8StringEncoding];
}
      return ciphertext;

}

相关文章

  • iOS开发中DES/CBC加密

    iOS开发中DES/CBC/PKCS5Padding方式的加密 import

  • 面试题总结

    1. iOS开发中的加密方式 iOS加密相关算法框架:CommonCrypto。 对称加密: DES、3DES、A...

  • ios des加密

    前言 des加密做的时候后端前端ios和安卓三端需统一 1、DES加密有两种模式,ECB和CBC。还有就是填充模式...

  • iOS中数据加密方式(DES/CBC/PKCS5Padding)

    项目关于金融方面的,需要对数据进行加密措施。后台用的是DES/CBC/PKCS5Padding,也就是DES加密,...

  • iOS DES CBC模式加密记录

    DES加密简介 DES是一种对称加密算法,采用64位密钥技术(实际上只有前8位用来校验),用得比较广泛,在项目中也...

  • iOS 笔记之_时间戳 + DES 加密

    iOS 时间戳 + DES 加密 时间戳 DES 加密解密 加密内容:helloWorldDES加密成功加密结果:...

  • Java 实现 3DES 加密

    本文介绍 Java 语言实现 3DES 加密的方法。 目录 3DES 简介 代码实现CBC 3DES 简介 3DE...

  • 加密方式

    加密方式 1.可加密,可解密 Base64编码 对称加密AES加密DES加密有两种模式,ECB和CBC 非对称加密...

  • AES+128+CBC数据加密 IOS及PHP

    AES+128+CBC 加密 注释:128加密算法长度 CBC加密方式 一.iOS写法如下 1.新建类目文件AE...

  • iOS开发中DES的加密和解密

    需要初始化iv的DES加密。(CBC模式) 两个iv任选其一,必须要和你的后台对应。(CBC模式)const By...

网友评论

      本文标题:iOS开发中DES/CBC加密

      本文链接:https://www.haomeiwen.com/subject/keybattx.html