iOS-OC-3DES加密和解密
+ (NSString*)TripleDES:(NSString*)plainText encryptOrDecrypt:(CCOperation)encryptOrDecrypt
{
const void *vplainText;
size_t plainTextBufferSize;
if (encryptOrDecrypt == kCCDecrypt)//解密
{
NSData *EncryptData = [GTMBase64 decodeData:[plainText dataUsingEncoding:NSUTF8StringEncoding]];
plainTextBufferSize = [EncryptData length];
vplainText = [EncryptData bytes];
}
else //加密
{
NSData* data = [plainText dataUsingEncoding:NSUTF8StringEncoding];
plainTextBufferSize = [data length];
vplainText = (const void *)[data bytes];
}
CCCryptorStatus ccStatus;
uint8_t *bufferPtr = NULL;
size_t bufferPtrSize = 0;
size_t movedBytes = 0;
bufferPtrSize = (plainTextBufferSize + kCCBlockSize3DES) & ~(kCCBlockSize3DES - 1);
bufferPtr = malloc( bufferPtrSize * sizeof(uint8_t));
memset((void *)bufferPtr, 0x0, bufferPtrSize);
// memset((void *) iv, 0x0, (size_t) sizeof(iv));
const void *vkey = (const void *)[DESKEY UTF8String];
// NSString *initVec = @"init Vec";
//const void *vinitVec = (const void *) [initVec UTF8String];
// Byte iv[] = {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};
ccStatus = CCCrypt(encryptOrDecrypt,
kCCAlgorithm3DES,
kCCOptionPKCS7Padding | kCCOptionECBMode,
vkey,
kCCKeySize3DES,
nil,
vplainText,
plainTextBufferSize,
(void *)bufferPtr,
bufferPtrSize,
&movedBytes);
//if (ccStatus == kCCSuccess) NSLog(@"SUCCESS");
NSString *result;
if (encryptOrDecrypt == kCCDecrypt)
{
result = [[NSString alloc] initWithData:[NSData dataWithBytes:(const void *)bufferPtr length:(NSUInteger)movedBytes] encoding:NSUTF8StringEncoding];
}
else
{
NSData *myData = [NSData dataWithBytes:(const void *)bufferPtr length:(NSUInteger)movedBytes];
result = [GTMBase64 stringByEncodingData:myData];
}
return result;
}
iOS-OC-3DES加密和解密相关推荐
- 探讨NET Core数据进行3DES加密或解密弱密钥问题
[导读]之前写过一篇<探讨.NET Core数据进行3DES加密和解密问题>,最近看到有人提出弱密钥问题,换个强密钥不就完了吗,猜测可能是与第三方对接导致很无奈不能更换密钥,所以产生本文解 ...
- 3DES加密、解密工具类
一个简单的3DES加密.解密工具类,Base64在 sun.misc.BASE64Decoder替代类有介绍 package com.w; import java.security.Key; impo ...
- 探讨.NET Core数据进行3DES加密和解密问题
前言 一直困扰着我关于数据加密这一块,24号晚上用了接近3个小时去完成一项任务,本以为立马能解决,但是为了保证数据的安全性,我们开始去对数据进行加密,然后接下来3个小时专门去研究加密这一块,然而用着用 ...
- 3des加密 java php_java的3DES加密PHP7解密备忘录
前言: 有一个项目需要跟甲方做接口,甲方使用的是java的3DES加密解密方式. 甲方加密解密部分截图代码: 填写图片摘要(选填) 第一步: 将甲方的iv转成PHP可以使用的偏移量 填写图片摘要(选填 ...
- DES/3DES加密,解密
〇.前言 最近在项目中,涉及到与第三方厂家系统进行对接时,在参数传递过程中考虑到了数据的安全性,故双方采用3DES进行对传递参数的加解密,因此,进一步了解了下3DES的加解密算法,再次进行梳理. 一. ...
- js的3DES加密与解密
3DES的加密与解密 Base64与Hex Base64与Hex都属于编码形式,Hex又称Base16.在3DES的加密与解密过程中,需要进行两种编码形式的转换. 3DES的加密 首先first.ht ...
- 加密系列 | 3DES加密和解密算法详解代码示例
3DES的在Java的实现与DES类似,如下代码为3DES加密算法.CBC模式.PKCS5Padding填充方式的加密解密结果,参考代码如下所示: import java.security.Key;i ...
- ios swift5 AES加密,解密
用第三框架CryptoSwift CryptoSwift - github 下面的代码本人亲测有效 do {let aes = try AES(key: "keykeykeykeykeyk& ...
- 7.node.js的3DES 加密和解密的方法封装
原文:http://blog.csdn.net/ererfei/article/details/73558226 1 var assert = require('assert'); 2 var cry ...
- Java实现3DES加密解密(DESede/ECB/PKCS5Padding使用)
一.简介 3DES(又叫Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称. 它相当于是对每个数据块应用三次DES加密算 ...
最新文章
- RxJava 过滤操作符 distinct 和 distinctUntilChanged
- Jprofiler注册码
- Apache访问日志详解
- Windows Server 2008壮烈牺牲
- 从设备像素比到移动适配
- linux键盘输入重复,关于修改键盘输入
- java:蓝桥杯练习 分解质因数
- 在android添加数据采集,一种基于Android系统的地理信息数据采集方法与流程
- java 包装类_Java中的包装类
- 【选手分享】菜鸡到大佬的蜕变技巧
- 手把手教你用Vue.js封装Form组件
- c 语言申明头文件和实现分开简单例子
- 什么是云计算,云计算运营方式和部署方式介绍
- iis中应用程序服务器错误,iis应用程序服务器错误
- 免费打工仔:一个完善的ActiveX Web控件教程
- 《23种设计模式之单例模式(4种实现)》
- 编程入门之学哪种编程语言?
- 外包岗退退退!坚决不能选的三点理由:简历有污点,稳定性极差,福利待遇差!...
- 网狐棋牌客户端连接服务器修改方法
- 华为OJ——参数解析