iOS -- DES算法
算法步骤:
#import "NSString+MFDES.h"
#import <CommonCrypto/CommonCrypto.h>
// key 必须8位
#define key @"01234567"
// 向量
static Byte iv[] = {1, 2, 3, 4, 5, 6, 7, 8}; @implementation NSString (MFDES) // 1. 字符串对称加密(DES)
- (NSString *)stringWithDES{
// 1. 将字符串本身转化为C字符串
const char *string = [self UTF8String];
// 2. 接收容器
unsigned char byte[1024];
// 3. 容器大小
size_t dataOutMoved = 0;
// 4. DES加密过程
// 1. 参数1. 加密 或者 解密
// 2. 参数2: 加密 / 解密 方式
// 3. 参数3: 分组密码的选项
// 4. 参数4: 秘钥
// 5. 参数5: 秘钥的大小
// 6. 参数6: 向量
// 7. 参数7: c的字符串
// 8. 参数8: 字符串的长度
// 9. 参数9: 接收容器
// 10. 参数10: 容器的大小
// 11. 参数11: 容器最终的个数
CCCryptorStatus cryptorStatus = CCCrypt(kCCEncrypt, kCCAlgorithmDES, kCCOptionPKCS7Padding, [key UTF8String], kCCKeySizeDES, iv, string, strlen(string), byte, 1024, &dataOutMoved); if (cryptorStatus == kCCSuccess) {
// 转成字符串 ==== base64返回
NSLog(@"加密成功");
NSData *desData = [NSData dataWithBytes:byte length:dataOutMoved];
NSString *desBaseString = [desData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
return desBaseString; } else { NSLog(@"加密失败"); } return @""; } // 2. 字符串对称解密(DES)
- (NSString *)desWithString{ NSData *base64Data = [[NSData alloc] initWithBase64EncodedString:self options:NSDataBase64DecodingIgnoreUnknownCharacters]; const void *byte = base64Data.bytes;
unsigned char buffer[1024];
size_t dataOutMoved = 0; // C 语言方法
CCCryptorStatus cryptorStatus = CCCrypt(kCCDecrypt, kCCAlgorithmDES, kCCOptionPKCS7Padding, [key UTF8String], kCCKeySizeDES, iv, byte, base64Data.length, buffer, 1024, &dataOutMoved); if (cryptorStatus == kCCSuccess) { NSLog(@"解密成功");
NSData *desData = [NSData dataWithBytes:buffer length:dataOutMoved];
NSString *desBaseString = [[NSString alloc] initWithData:desData encoding:NSUTF8StringEncoding];
return desBaseString; } else { NSLog(@"解密失败"); } return @""; }
iOS -- DES算法的更多相关文章
- 在IOS中使用DES算法对Sqlite数据库进行内容加密存储并读取解密
在IOS中使用DES算法对Sqlite 数据库进行内容加密存储并读取解密 涉及知识点: 1.DES加密算法: 2.OC对Sqlite数据库的读写: 3.IOS APP文件存储的两种方式及读取方式. 以 ...
- DES算法详解
本文主要介绍了DES算法的步骤,包括IP置换.密钥置换.E扩展置换.S盒代替.P盒置换和末置换. 1.DES算法简介 DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准. DES是一个分组 ...
- 基于DES算法加密的防撞库密码系统项目总结
项目内容:基于DES算法加密的防撞库密码系统 小组名:zqhzkzkj 目标:1.对用户输入的8位字符进行DES加密,要求用户输入8位密钥 2.对于不同的网站,不同的用户名生成不同的密码 小组成员:周 ...
- DES 算法的 C++ 与 JAVA 互相加解密
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- MFC 简单实现 DES 算法
前言 徐旭东老师说过学者就应该对知识抱有敬畏之心,所以我的博客的标题总喜欢加上"简单"二字,就是为了提醒自己,自己所学知识只是皮毛,离真理还远矣. DES 算法 DES算法是密码体 ...
- Asp.Net 常用工具类之加密——对称加密DES算法(2)
又到周末,下午博客园看了两篇文章,关于老跳和老赵的程序员生涯,不禁感叹漫漫程序路,何去何从兮! 转眼毕业的第三个年头,去过苏州,跑过上海,从一开始的凌云壮志,去年背起行囊默默回到了长沙准备买房,也想有 ...
- AES算法,DES算法,RSA算法JAVA实现
1 AES算法 1.1 算法描述 1.1.1 设计思想 Rijndael密码的设计力求满足以下3条标准: ① 抵抗所有已知的攻击. ② 在多个平台上速度快,编码紧凑. ③ 设计 ...
- 安全体系(一)—— DES算法详解
本文主要介绍了DES算法的步骤,包括IP置换.密钥置换.E扩展置换.S盒代替.P盒置换和末置换. 安全体系(零)—— 加解密算法.消息摘要.消息认证技术.数字签名与公钥证书 安全体系(二)——RSA算 ...
- DES算法原理完整版
1.所需参数 key:8个字节共64位的工作密钥 data:8个字节共64位的需要被加密或被解密的数据 mode:DES工作方式,加密或者解密 2.初始置换 DES算法使用64位的密钥key将64位的 ...
随机推荐
- Struts2学习笔记01 之 简介及配置
一.Struts简介 * 是轻量级的MVC框架,主要解决了请求分发的问题,重心在控制层和表现层.运用ASOP的思想,使用拦截器来扩展业务控制器 二.使用步骤: 1.引入Sturts2的相关JAR包 2 ...
- django使用haystack对接Elasticsearch实现商品搜索
# 原创,转载请留言联系 前言: 在做一个商城项目的时候,需要实现商品搜索功能. 说到搜索,第一时间想到的是数据库的 select * from tb_sku where name like %苹果手 ...
- js字符串与Unicode编码互相转换
).toString() "597d" 这段代码的意思是,把字符'好'转化成Unicode编码,toString()就是把字符转化成16进制了 看看charCodeAt()是怎么个 ...
- Python datetime描述
(1)字符串转datetime:>>> string = '2014-01-08 11:59:58'>>> time1 = datetime.datetime.st ...
- 配置文件中的mime-mapping元素(ofbiz/framework/catalina/config/mime-type)(
mime-mapping元素将mime类型映射到扩展名. extension元素用来描述扩展名.mime-type元素则为MIME类型. <?xml version="1.0" ...
- 微信小程序-ios系统-下拉上拉出现白色,如何处理呢?
这几天做小程序,有些页面都是全屏的背景,在安卓上背景是固定的,而在ios上上拉下拉出现白色,测试说体验不太好,一开始我以为是下拉上拉刷新造成的,关闭了依然是这样.为了体验好点,可以按一下解决: 方式一 ...
- AC日记——[SDOI2017]树点涂色 bzoj 4817
4817 思路: 跪烂大佬 代码: #include <bits/stdc++.h> using namespace std; #define maxn 500005 struct Tre ...
- 解决Django在mariadb创建的表插入中文乱码的问题
1.确保你的mariadb数据库的character_set_connection.character_set_database.character_set_server的编码均为utf8 Maria ...
- Intellij IDEA 去掉Mapper文件中的背景
1.在setting中输入:inspection --> SQL 2.去掉背景颜色,Apply即可
- React Native学习
学习 首先,假使你已经安装了Nodejs 6,也有使用npm进行Nodejs的包管理 npm install -g react-native-cli 也可以使用yarn作为包管理工具 npm inst ...