CCCrypt函数——iOS加解密必知
需要引入框架
#import <CommonCrypto/CommonCryptor.h>
函数定义:
CCCryptorStatus CCCrypt(CCOperation op, /* kCCEncrypt, etc. */CCAlgorithm alg, /* kCCAlgorithmAES128, etc. */CCOptions options, /* kCCOptionPKCS7Padding, etc. */const void *key,size_t keyLength,const void *iv, /* optional initialization vector */const void *dataIn, /* optional per op and alg */size_t dataInLength,void *dataOut, /* data RETURNED here */size_t dataOutAvailable,size_t *dataOutMoved)
参数说明:
1.CCOperation op:
/* 加密:kCCEncrypt = 0, 解密:kCCDecrypt = 1 */
2.CCAlgorithm alg:
加解密根据哪个算法标准
kCCAlgorithmAES128=0,
kCCAlgorithmAES=0,
kCCAlgorithmDES=1,
kCCAlgorithm3DES=2,
kCCAlgorithmCAST,
kCCAlgorithmRC4,
kCCAlgorithmRC2,
kCCAlgorithmBlowfish
3.CCOptions options:
选择的补码方式,以及是否选择ECB模式,默认是CBC模式
kCCModeECB = 1,
kCCModeCBC = 2,
kCCModeCFB = 3,
kCCModeCTR = 4,
kCCModeF8 = 5, // Unimplemented for now (not included)
kCCModeLRW = 6, // Unimplemented for now (not included)
kCCModeOFB = 7,
kCCModeXTS = 8,
kCCModeRC4 = 9,
kCCModeCFB8 = 10,
4.const void *key:
密钥: 加密和解密的密钥必须一致。必须和选择的算法相匹配,不同的算法要求的秘钥长度不一样
5.size_t keyLength:
密钥的大小,这里是真正决定密钥长度的地方
kCCKeySizeAES128 = 16,
kCCKeySizeAES192 = 24,
kCCKeySizeAES256 = 32,
kCCKeySizeDES = 8,
kCCKeySize3DES = 24,
kCCKeySizeMinCAST = 5,
kCCKeySizeMaxCAST = 16,
kCCKeySizeMinRC4 = 1,
kCCKeySizeMaxRC4 = 512,
kCCKeySizeMinRC2 = 1,
kCCKeySizeMaxRC2 = 128,
kCCKeySizeMinBlowfish = 8,
kCCKeySizeMaxBlowfish = 56,
6.iv:
偏移向量,CBC模式下需要;不传默认16位0,只有在ECB模式下不需要
7.const void *dataIn:
要加解密的数据data.bytes
8.size_t dataInLength:
要加解密的数据的大小
9.void *dataOut :
输出的数据,加解密后的数据写在这里,
10.size_t dataOutAvailable:
输出数据时需要的可用空间大小。数据缓冲区的大小(字节)
11.size_t dataOutMoved:
操作成功之后,被写入dataout的字节长度。如果由于提供的缓冲区空间不足而返回kCCBufferTooSmall,则在这里返回所需的缓冲区空间。
CCCrypt函数——iOS加解密必知相关推荐
- iOS - 加解密(对称,非对称)(AES DES base64这里都有),数字签名,cookie
这篇文章不是研究性的东西,主要是简单的一些知识, 开篇如此, 我尽量不让读者失望. 首先罗列一些知识点: 1.加密算法通常分为对称性加密算法和非对称性加密算法:对于对称性加密算法,信息接收双方都需事先 ...
- c2064 项不会计算为接受0个参数的函数_【JS必知必会】高阶函数详解与实战
本文涵盖 前言 高级函数概念 函数作为参数的高阶函数 map filter reduce sort详解与实战 函数作为返回值的高阶函数 isType函数与add求和函数 如何自己创建高阶函数 前言 一 ...
- mysql必知必会日期函数,MySQL:MySQL必知必会总结
1. SHOW 语句: Show database;#返回可用数据库的一个列表 Show Tables;#返回当前选择数据库内的可用表的列表 Show COLUMNS FROM 表名;#表中的每个字段 ...
- C++中的函数汇总(新手必知)!
math.h 数学函数库,一些数学计算的公式的具体实现是放在math.h里,具体有: 1 三角函数 double sin (double); double cos (double); double t ...
- Openssl 对称加解密函数 - EVP_Cipher、EVP_Encrypt、EVP_Decryp 系列
实验环境:openssl 1.1.1k EVP_CipherInit_ex().EVP_CipherUpdate() 和 EVP_CipherFinal_ex() 是可用于解密或加密的函数.执行的操作 ...
- Java/IOS通用异或加解密字符串
1.Java的异或加解密算法 在使用异或加解密时,加密和解密的密钥必须保持相同,否则解密时无法恢复为原来的内容. public class XOREncryptAndDecrypt {//密钥 加解密 ...
- STM32F1做RSA,AES数据加解密,MD5信息摘要处理
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_31878855/article/ ...
- ios java aes_PHP7 AES加密解密函数_兼容ios/andriod/java对等加解密
**PHP7.0 7.1 7.2 7.3 AES对等加解密类 函数文件_兼容ios/andriod/java等** 由于新项目规划要求使用PHP7.2开发环境,但在部分新系统中仍需使用AES加解密方式 ...
- ios下使用rsa算法与php进行加解密通讯
首先了解一下几个相关概念,以方便后面遇到的问题的解决: RSA算法:1977年由Ron Rivest.Adi Shamirh和LenAdleman发明的,RSA就是取自他们三个人的名字.算法基于一个数 ...
最新文章
- 凌晨三点,各类程序员都在干吗?
- 轮廓线重建:二维平行轮廓线重建理论和方法
- JAVA——GZIP压缩与解压缩
- 计算机网络(谢希仁第八版)第一章:概述
- 【oracle】多个用户的对象 导出导入
- 华为云文字识别服务产品优势、应用场景、典型案例和未来之路(OCR系列三)
- 编写asp.net程序,当编译调试比较频繁的时候,很容易经常地出现访问被拒绝
- @Scheduled定时任务
- php mysql索引最左原则_MySQL 索引使用策略及优化
- 认识协程gevent
- 虚拟机安装教程win10_Parallels Desktop如何安装windowns系统?PD虚拟机安装win10系统详细教程
- Hyperscan 5.1.0 安装
- Dzd电子书格式转换程序Txt2Dzd
- 红色警戒在win10下运行办法
- 如何把jpeg转换成jpg?怎么把jpeg图片转化为jpg?
- 电离释放型动态水处理器
- Rosalind Java| Computing GC Content
- ChatGPT 常见错误原因及解决方案:报错、回答不完整、网络错误等
- iOS 苹果审核被下架的部分原因
- surface pro 7 linux,微软正式发布Surface Pro 7