需要引入框架

#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加解密必知相关推荐

  1. iOS - 加解密(对称,非对称)(AES DES base64这里都有),数字签名,cookie

    这篇文章不是研究性的东西,主要是简单的一些知识, 开篇如此, 我尽量不让读者失望. 首先罗列一些知识点: 1.加密算法通常分为对称性加密算法和非对称性加密算法:对于对称性加密算法,信息接收双方都需事先 ...

  2. c2064 项不会计算为接受0个参数的函数_【JS必知必会】高阶函数详解与实战

    本文涵盖 前言 高级函数概念 函数作为参数的高阶函数 map filter reduce sort详解与实战 函数作为返回值的高阶函数 isType函数与add求和函数 如何自己创建高阶函数 前言 一 ...

  3. mysql必知必会日期函数,MySQL:MySQL必知必会总结

    1. SHOW 语句: Show database;#返回可用数据库的一个列表 Show Tables;#返回当前选择数据库内的可用表的列表 Show COLUMNS FROM 表名;#表中的每个字段 ...

  4. C++中的函数汇总(新手必知)!

    math.h 数学函数库,一些数学计算的公式的具体实现是放在math.h里,具体有: 1 三角函数 double sin (double); double cos (double); double t ...

  5. Openssl 对称加解密函数 - EVP_Cipher、EVP_Encrypt、EVP_Decryp 系列

    实验环境:openssl 1.1.1k EVP_CipherInit_ex().EVP_CipherUpdate() 和 EVP_CipherFinal_ex() 是可用于解密或加密的函数.执行的操作 ...

  6. Java/IOS通用异或加解密字符串

    1.Java的异或加解密算法 在使用异或加解密时,加密和解密的密钥必须保持相同,否则解密时无法恢复为原来的内容. public class XOREncryptAndDecrypt {//密钥 加解密 ...

  7. STM32F1做RSA,AES数据加解密,MD5信息摘要处理

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_31878855/article/ ...

  8. ios java aes_PHP7 AES加密解密函数_兼容ios/andriod/java对等加解密

    **PHP7.0 7.1 7.2 7.3 AES对等加解密类 函数文件_兼容ios/andriod/java等** 由于新项目规划要求使用PHP7.2开发环境,但在部分新系统中仍需使用AES加解密方式 ...

  9. ios下使用rsa算法与php进行加解密通讯

    首先了解一下几个相关概念,以方便后面遇到的问题的解决: RSA算法:1977年由Ron Rivest.Adi Shamirh和LenAdleman发明的,RSA就是取自他们三个人的名字.算法基于一个数 ...

最新文章

  1. 凌晨三点,各类程序员都在干吗?
  2. 轮廓线重建:二维平行轮廓线重建理论和方法
  3. JAVA——GZIP压缩与解压缩
  4. 计算机网络(谢希仁第八版)第一章:概述
  5. 【oracle】多个用户的对象 导出导入
  6. 华为云文字识别服务产品优势、应用场景、典型案例和未来之路(OCR系列三)
  7. 编写asp.net程序,当编译调试比较频繁的时候,很容易经常地出现访问被拒绝
  8. @Scheduled定时任务
  9. php mysql索引最左原则_MySQL 索引使用策略及优化
  10. 认识协程gevent
  11. 虚拟机安装教程win10_Parallels Desktop如何安装windowns系统?PD虚拟机安装win10系统详细教程
  12. Hyperscan 5.1.0 安装
  13. Dzd电子书格式转换程序Txt2Dzd
  14. 红色警戒在win10下运行办法
  15. 如何把jpeg转换成jpg?怎么把jpeg图片转化为jpg?
  16. 电离释放型动态水处理器
  17. Rosalind Java| Computing GC Content
  18. ChatGPT 常见错误原因及解决方案:报错、回答不完整、网络错误等
  19. iOS 苹果审核被下架的部分原因
  20. surface pro 7 linux,微软正式发布Surface Pro 7

热门文章

  1. node.js安装及环境变量配置
  2. C#-Lambda表达式
  3. flutter父组件调用子组件方法
  4. [小技巧] 网易邮箱收到的邮件乱码怎么办?
  5. scala函数式编程初体验 == 用scala函数实现 WordCount
  6. NNLM神经网络语言模型简单实现词语预测(含python代码详解)
  7. TED 若想有所作为,请停止和别人比较
  8. element el-calendar 日历组件可添加展示日程
  9. mt4函数-开仓,平仓
  10. 福州php前景,重磅!福州市未来三年棚改计划出炉!看看都拆哪?