//iOS DES  ECB 模式加密
#import <CommonCrypto/CommonCryptor.h> static Byte iv[] = {,,,,,,,};
+(NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key

 {

         NSString *ciphertext = nil;

         const char *textBytes = [plainText UTF8String];

         NSUInteger dataLength = [plainText length];

        unsigned char buffer[];

         memset(buffer, , sizeof(char));

         size_t numBytesEncrypted = ;

         CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmDES,

                                                                                            kCCOptionECBMode|kCCOptionPKCS7Padding,  //kCCOptionECBMode  kCCOptionPKCS7Padding

                                                                                            [key UTF8String], kCCKeySizeDES,

                                                                                            iv,

                                                                                          textBytes, dataLength,

                                                                                            buffer, ,

                                                                                            &numBytesEncrypted);
if (cryptStatus == kCCSuccess) { NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];
//NSLog(@"ssf:%s",buffer);
ciphertext = [ViewController base64Encoding:data];
// NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];
// Byte* bb = (Byte*)[data bytes];
// ciphertext = [self parseByteArray2HexString:bb]; } return ciphertext; } static const char encodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +(NSString *)base64Encoding:(NSData*) text
{
if (text.length == )
return @""; char *characters = malloc(text.length*/); if (characters == NULL)
return @""; int end = text.length - ;
int index = ;
int charCount = ;
int n = ; while (index <= end) {
int d = (((int)(((char *)[text bytes])[index]) & 0x0ff) << )
| (((int)(((char *)[text bytes])[index + ]) & 0x0ff) << )
| ((int)(((char *)[text bytes])[index + ]) & 0x0ff); characters[charCount++] = encodingTable[(d >> ) & ];
characters[charCount++] = encodingTable[(d >> ) & ];
characters[charCount++] = encodingTable[(d >> ) & ];
characters[charCount++] = encodingTable[d & ]; index += ; if(n++ >= )
{
n = ;
characters[charCount++] = ' ';
}
} if(index == text.length - )
{
int d = (((int)(((char *)[text bytes])[index]) & 0x0ff) << )
| (((int)(((char *)[text bytes])[index + ]) & ) << );
characters[charCount++] = encodingTable[(d >> ) & ];
characters[charCount++] = encodingTable[(d >> ) & ];
characters[charCount++] = encodingTable[(d >> ) & ];
characters[charCount++] = '=';
}
else if(index == text.length - )
{
int d = ((int)(((char *)[text bytes])[index]) & 0x0ff) << ;
characters[charCount++] = encodingTable[(d >> ) & ];
characters[charCount++] = encodingTable[(d >> ) & ];
characters[charCount++] = '=';
characters[charCount++] = '=';
}
NSString * rtnStr = [[NSString alloc] initWithBytesNoCopy:characters length:charCount encoding:NSUTF8StringEncoding freeWhenDone:YES];
return rtnStr;
}

iOS DES ECB 模式加密的更多相关文章

  1. C# DES (ECB模式) 加密解密 --单倍长

    加密:  调用时: Encrypt_DES16("2AF349243535BCD3", "1111111111111111"); public static s ...

  2. Android DES加密的CBC模式加密解密和ECB模式加密解密

    DES加密共有四种模式:电子密码本模式(ECB).加密分组链接模式(CBC).加密反馈模式(CFB)和输出反馈模式(OFB). CBC模式加密: import java.security.Key; i ...

  3. DES ECB 模式 JAVA PHP C# 实现 加密 解密 兼容

    版本一: JAVA: import org.slf4j.Logger; import org.slf4j.LoggerFactory; import sun.misc.BASE64Decoder; i ...

  4. PHP实现DES/ECB/PKCS5Padding加密兼容Java SHA1PRNG算法

    在使用php调用java接口时,遇到了两边加密结果不一致的问题.经过沟通发现接口方使用了SHA1PRNG算法,对原密码计算后做为Des的加密Key. 因此在php中也需要先对原密码做相应计算才能保持结 ...

  5. [转]<加密算法c#>——— 3DES加密之ECB模式 和 CBC模式

    本文转自:http://www.cnblogs.com/qq278360339/archive/2013/06/05/3119222.html 最近 一个项目.net 要调用JAVA的WEB SERV ...

  6. DES加密ECB(模式) golang

    Java默认DES算法使用DES/ECB/PKCS5Padding,而golang认为这种方式是不安全的,所以故意没有提供这种加密方式,那如果我们还是要用到怎么办?下面贴上golang版的DES EC ...

  7. iOS与PHP/Android AES128 ECB NoPadding加密

    前言 谈谈AES加密,网上有很多的版本,当我没有真正在加密安全问题前,总以为百度出来某个AES加密算法就可以直接使用,实际上当我真正要做加密时,遇到了很多的坑,原来不是拿过来就能用的.写下本篇文章,记 ...

  8. AES中ECB模式的加密与解密(Python3.7)

    本文主要解决的问题 本文主要是讲解AES加密算法中的ECB模式的加密解密的Python3.7实现.具体AES加密算法的原理这里不做过多介绍,想了解的可以参考文末的参考链接. 主要解决了两个问题: 在P ...

  9. 对称加密中的ECB模式&CBC模式

    ECB模式: CBC模式: 所有的迭代模式:

随机推荐

  1. The main reborn ASP.NET MVC4.0: using CheckBoxListHelper and RadioBoxListHelper

    The new Helpers folder in the project, to create the CheckBoxListHelper and RadioBoxListHelper class ...

  2. 无法打开物理文件 XXX.mdf",操作系统错误 5:"5(拒绝访问。)"的解决办法

    http://blog.csdn.net/blackfield/article/details/6550499 用T-SQL命令附加数据库时,出现如下异常信息: 无法打开物理文件 XXX.mdf&qu ...

  3. myeclipse和eclipse的区别和联系,以及版本间的对应关系

    Eclipse:IBM花了4千万美金来开发这个IDE(Integrated Development Environment).第一版1.0在2001年11月释出,随后逐渐受到欢迎.Eclipse已经成 ...

  4. LESS碎语

    推荐在Brackets安装"LESS AutoCompile"插件,当保存less文件会自动生成或保存相应的css文件. 变量 以@开头声明变量,并且对变量进行分类,比如颜色变量. ...

  5. Android 程序目录介绍

    还是回到 Eclipse 中,首先展开 HelloWorld 项目,你会看到如图 1.17 所示的目录结构. 图   1.17 一开始看到这么多陌生的东西,你一定会感到有点头晕吧.别担心,我现在就对上 ...

  6. Error opening wax scripts: loading wax stdlib: bad header in precompiled chunk

    在64位ios操作系统中使用lua报错. Error opening wax scripts: loading wax stdlib: bad header in precompiled chunk ...

  7. Linux isql

    登录Linux环境,执行 isql -s 命令,进入isql命令页面 进入后页面如下: 选择Query-Language回车,选项可进行数据库操作 进入后,选择要操作的数据库,回车 进行入数据库后的数 ...

  8. 在Android工程中加入AIDL文件时,gen目录生成的文件报错-问题解决

    from://http://blog.csdn.net/watt520/article/details/10099047 今天在弄清除缓存的东东,按照网上别人的方法,创建了一个AIDL文件,这个时候发 ...

  9. (转载):ASCII,Unicode和UTF-8 编码

    UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所 ...

  10. Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out

    问题: java连接不上redis. 异常信息: Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.ne ...