DES加密算法

因为要做关于硬件设备的开发所以需要加密运算 

这里面加密运算和其它的区别是不需要BASE64转码还有在解密的时候不用kCCOptionPKCS7Padding因为会发生部分数据无法解开

+(NSMutableData*) encryptUseDES:(NSMutableData*)plainText key:(NSMutableData*)key

{

NSString*ciphertext =nil;

NSMutableData*textData = [[NSMutableDataalloc]initWithData:plainText];

NSIntegera =8;

NSIntegerb = textData.length%a;

NSIntegerc = a-b;

if(b!=0) {

for(inti =0; i

{

NSString*string =@"00";

NSMutableData*data = [AES128dataWithHexString:string];

[textDataappendData:data];

}

}

NSUIntegerdataLength = [textDatalength];

unsignedcharbuffer[1024];

memset(buffer,0,sizeof(char));

size_tnumBytesEncrypted =0;

constvoid*keyvoid = (constvoid*)[keybytes];

CCCryptorStatuscryptStatus =CCCrypt(kCCEncrypt,kCCAlgorithmDES,

kCCOptionPKCS7Padding|kCCOptionECBMode,

keyvoid,kCCKeySizeDES,iv,

[textDatabytes], dataLength,

buffer,1024,

&numBytesEncrypted);

if(cryptStatus ==kCCSuccess) {

NSMutableData*data = [NSMutableDatadataWithBytes:bufferlength:(NSUInteger)dataLength];

returndata;

}

returnnil;

}

+(NSMutableData*) decryptUseDES:(NSMutableData*)cipherText key:(NSMutableData*)key

{

NSData* cipherData = [[NSDataalloc]initWithData:cipherText];

unsignedcharbuffer[1024];

memset(buffer,0,sizeof(char));

size_tnumBytesDecrypted =0;

Byteiv[] = {1,2,3,4,5,6,7,8};

constvoid*keyvoid = (constvoid*)[keybytes];

CCCryptorStatuscryptStatus =CCCrypt(kCCDecrypt,

kCCAlgorithmDES,

kCCOptionECBMode,

keyvoid,

kCCKeySizeDES,

iv,

[cipherDatabytes],

[cipherDatalength],

buffer,

1024,

&numBytesDecrypted);

NSString* plainText =nil;

if(cryptStatus ==kCCSuccess) {

NSMutableData* data = [NSMutableDatadataWithBytes:bufferlength:(NSUInteger)cipherText.length];

// NSLog(@"DES%@",data);

returndata;

}

returnnil;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /**ios常见的几种加密方法: 普通的加密方法是讲密码进行加密后保存到用户偏好设置( [NSUserDefaul...
    彬至睢阳阅读 3,040评论 0 7
  • 一、实验目的 1、理解DES算法原理 2、掌握DES的实现 二、实验环境 Windows XP、VC6.0/Ecl...
    蝌蚪1573阅读 4,476评论 2 4
  • 什么是对称密码算法 网络安全通信中要用到两类密码算法,一类是对称密码算法,另一类是非对称密码算法。对称密码算法有时...
    edison0428阅读 28,634评论 2 7
  • 证明:DES解密算法是DES加密算法的逆 证明: 由于DES算法是在Feistel网络结构的输入和输出阶段分别初始...
    L_jun阅读 1,853评论 0 0
  • 嘟哝嘟哝:最近接到一个任务:在客户端动态生成RSA密钥对,然后向服务器发送这个密钥对中的公钥字符串,由服务器进行公...
    TimmyR阅读 8,106评论 19 21