IOS常用加密DES
NSString+DES.h
// // NSString+DES.h // haochang // // Created by Administrator on 14-4-15. // Copyright (c) 2014年 Administrator. All rights reserved. // #import <Foundation/Foundation.h> @interface NSString (DES) //加密 +(NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key; //解密 +(NSString *) decryptUseDES:(NSString *)plainText key:(NSString *)key; @end
NSString+DES.m
// // NSString+DES.m // haochang // // Created by Administrator on 14-4-15. // Copyright (c) 2014年 Administrator. All rights reserved. // #import "NSString+DES.h" #import <CommonCrypto/CommonCrypto.h> @implementation NSString (DES) //加密 +(NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key; { NSString *ciphertext = nil; const char *textBytes = [plainText UTF8String]; NSUInteger dataLength = [plainText length]; unsigned ]; memset(buffer, , sizeof(char)); size_t numBytesEncrypted = ; CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmDES, kCCOptionPKCS7Padding, [key UTF8String], kCCKeySizeDES, NULL, textBytes, dataLength, buffer, , &numBytesEncrypted); if (cryptStatus == kCCSuccess) { NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted]; ciphertext = [self dataTohexString:data]; } return ciphertext; } //解密 +(NSString *) decryptUseDES:(NSString *)plainText key:(NSString *)key { NSString *cleartext = nil; NSData *textData = [self hexStringToData:plainText]; NSUInteger dataLength = [textData length]; unsigned ]; memset(buffer, , sizeof(char)); size_t numBytesEncrypted = ; CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt, kCCAlgorithmDES,kCCOptionPKCS7Padding, [key UTF8String], kCCKeySizeDES, NULL, [textData bytes] , dataLength, buffer, , &numBytesEncrypted); if (cryptStatus == kCCSuccess) { //NSLog(@"DES解密成功"); NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted]; cleartext = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; }else{ //NSLog(@"DES解密失败"); } return cleartext; } + (NSString *)dataTohexString:(NSData*)data { Byte *bytes = (Byte *)[data bytes]; NSString *hexStr=@""; ;i<[data length];i++) { NSString *newHexStr = [NSString stringWithFormat:@"%x",bytes[i]&0xff];//16进制数 ) hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr]; else hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr]; } return hexStr; } + (NSData*)hexStringToData:(NSString*)hexString { //NSString *hexString = @"3e435fab9c34891f"; //16进制字符串 ; Byte bytes[hexString.length]; ///3ds key的Byte 数组, 128位 ;i<[hexString length];i++) { int int_ch; /// 两位16进制数转化后的10进制数 unichar hex_char1 = [hexString characterAtIndex:i]; ////两位16进制数中的第一位(高位*16) int int_ch1; ') int_ch1 = (hex_char1-)*; //// 0 的Ascll - 48 else if(hex_char1 >= 'A' && hex_char1 <='F') int_ch1 = (hex_char1-)*; //// A 的Ascll - 65 else int_ch1 = (hex_char1-)*; //// a 的Ascll - 97 i++; unichar hex_char2 = [hexString characterAtIndex:i]; ///两位16进制数中的第二位(低位) int int_ch2; ') int_ch2 = (hex_char2-); //// 0 的Ascll - 48 else if(hex_char1 >= 'A' && hex_char1 <='F') int_ch2 = hex_char2-; //// A 的Ascll - 65 else int_ch2 = hex_char2-; //// a 的Ascll - 97 int_ch = int_ch1+int_ch2; //NSLog(@"int_ch=%x",int_ch); bytes[j] = int_ch; ///将转化后的数放入Byte数组里 j++; } // NSData *newData = [[NSData alloc] initWithBytes:bytes length:j]; NSData *newData = [[NSData alloc] initWithBytes:bytes length:j]; //NSLog(@"newData=%@",newData); return newData; } @end
IOS常用加密DES的更多相关文章
- iOS常用加密方法(aes、md5、base64)
1.代码 iOS常用加密方法(aes.md5.base64) .AES加密 NSData+AES.h文件 // // NSData-AES.h // Smile // // Created by 周 ...
- iOS常用加密之RSA加密解密
前言: iOS常用的加密有很多种,前两天在工作中遇到了RSA加密,现在把代吗分享出来. RSA基本原理 RSA使用"秘匙对"对数据进行加密解密.在加密解密数据前,需要先生成公钥(p ...
- IOS常用加密GTMBase64
GTMDefines.h // // GTMDefines.h // // Copyright 2008 Google Inc. // // Licensed under the Apache Lic ...
- IOS常用加密Encryption
NSString+Encryption.h // // NSString+Encryption.h // haochang // // Created by Administrator on 14-4 ...
- iOS代码加密常用加密方式
iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...
- 在IOS中使用DES算法对Sqlite数据库进行内容加密存储并读取解密
在IOS中使用DES算法对Sqlite 数据库进行内容加密存储并读取解密 涉及知识点: 1.DES加密算法: 2.OC对Sqlite数据库的读写: 3.IOS APP文件存储的两种方式及读取方式. 以 ...
- iOS常用的加密方式--备用
MD5 iOS代码加密 创建MD5类,代码如下 #import <Foundation/Foundation.h> @interface CJMD5 : NSObject +(NSStri ...
- Asp.Net 常用工具类之加密——对称加密DES算法(2)
又到周末,下午博客园看了两篇文章,关于老跳和老赵的程序员生涯,不禁感叹漫漫程序路,何去何从兮! 转眼毕业的第三个年头,去过苏州,跑过上海,从一开始的凌云壮志,去年背起行囊默默回到了长沙准备买房,也想有 ...
- iOS常用的加密方式
MD5 iOS代码加密 创建MD5类,代码如下 #import <Foundation/Foundation.h> @interface CJMD5 : NSObject +(NSStri ...
随机推荐
- 一款安卓ShowcaseView视图源码效果
该源码是从源码天堂那边转载过来的,大家可以看看一下吧啊,一款安卓ShowcaseView视图源码效果,非常不错的,特别是在做引导时使用. 源码下载地址:http://code.662p.com/vie ...
- 极速地将git项目部署到SAE的svn服务器上
本文最初发布于我的个人博客:http://jerryzou.com/posts/gitForSAE/ 我花了一些时间自己写了一个能够极速地将一个git项目部署到SAE的svn服务器上的脚本.代码不是复 ...
- bootstrap中弹出窗体dialog的自定义
感谢nakupanda的https://github.com/nakupanda/bootstrap3-dialog 根据需要弹出窗体,但是可以移动,不遮挡下面的内容,所以就修改了源代码,添加了一个属 ...
- shell下添加计划性任务
*/1 * * * * /bin/sh /tmp/hello.sh ###每1分钟执行以下/tmp下的hello.sh脚本 service crond restart 重启任务计划 * 12 * ...
- css3干货
CSS3是CSS2的升级版本,3只是版本号,它在CSS2.1的基础上增加了很多强大的新功能. 目前主流浏览器chrome.safari.firefox.opera.甚至360都已经支持了CSS3大部分 ...
- HTTP首部及各状态码
通用首部:客户端和服务器都可以使用的通用首部,比如Status Code: 请求首部:请求首部是请求报文特有的,它们为服务器提供了一些额外信息,例如Accept: */* 用来告知服务器客户端会接受与 ...
- php小算法总结一(数组重排,进制转换)
1.两个有序数组组合成一个新的有序数组 <?php $arr1=array(2,5,7,9,12); $arr2=array(3,4,6,8,10,11); function merge_sor ...
- Laravel 5 基础(十一)- 子视图和表单复用
我们需要处理编辑文章的问题.当然我们可以手工添加新的路由,就像这样: Route::get('/articles/{id}/edit', 'ArticleController@edit'); 让我们在 ...
- 高性能MySQL——第一章MySQL的架构与历史
1.可以使用SHOW TABLE STATUS查询表的相关信息. 2.默认存储引擎是InnoDB,如果没有什么很特殊的要求,InnoDB引擎是我们最好的选择. 3.mysql的infobright引擎 ...
- 在一般处理程序中,把Form Post过来的表单集合转换成对象 ,仿 MVC post,反射原理
using System; using System.Collections.Generic; using System.Collections.Specialized; using System.L ...