//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. 在Visual Studio中使用用例图描述参与者与用例的关系

    在"在Visual Studio中使用用例图描述系统与参与者间的关系"中,使用用例图表示参与者与系统的关系,本篇体验参与者与用例(参与者要做的事情)的关系. 首先创建有关Custo ...

  2. I/O会一直占用CPU吗?【转载】

    转自:https://www.zhihu.com/question/27734728 知乎上看到的一个提问,可以参考 如下图:(图片摘自网络) 在进行I/O操作的时候,是将任务交给DMA来处理,请求发 ...

  3. RDIFramework.NET V2.7 Web版本号升手风琴+树型文件夹(2级+)方法

    级+)"界面风格,以展示多级功能菜单,满足用户的要求.Web展示效果例如以下: 要以"手风琴+树型文件夹(2级+)"的风格来展示功能模块,我们须要在"系统配置& ...

  4. iOS开发UI篇章 15-项目中的常见文件

    iOS开发UI篇-常见的项目文件介绍 一.项目文件结构示意图 二.文件介绍 1.products目录:主要用于mac电脑开发的可运行文件.ios开发用不到这个文件 2.frameworks目录主要用来 ...

  5. HDR和bloom效果的区别和关系

    什么是HDR?        谈论游戏画面时常说的HDR到底是什么呢?HDR,本身是High-Dynamic Range(高动态范围)的缩写,这本来是一个CG概念.HDR的含义,简单说,就是超越普通的 ...

  6. Android Studio导入项目的中文注释乱码解决方法

           在Android studio中,导入Android的项目后,容易出现项目文件的中文乱码,中文无法正常显示,变成了一些格子问号之类的,导致无法查看中文的注释,下面来看看导入项目和解决乱码 ...

  7. 【转】搜狗开源内部项目管理平台Cynthia意欲何为

    FROM : http://blog.csdn.net/dj0379/article/details/38356825 目前,在项目管理与缺陷管理系统上,中国的中小开发团队基本都在使用国外产品,在理念 ...

  8. PL2303 Windows8.1驱动

    常用的USB转串口下载芯片驱动可以参照我这篇文章USB转串口 FT232/PL2303/CH340 驱动以及使用体会 ,今天有找出了那根串口线打算使用,由于系统已经换为Windows8.1 X64所以 ...

  9. 样条之Akima光滑插值函数

    核心代码: ////////////////////////////////////////////////////////////////////// // Akima光滑插值 // t - 存放指 ...

  10. easyui +ASP.NET 前后台乱码解决方法

    前端接口 decodeURIencodeURI 后台接口 System.Web.HttpUtility.UrlEncode(user.name) 凡是涉及到中文的地方都要使用这几个接口