前言
这段时间,细致的研究了iOS下的CommonCrypto
框架,查阅了网上不少的资料,也有了不少的心得。这算是一篇总结记录的文章吧,欢迎他人一起讨论。
概述
CommonCrypto
的中文直译是"常用密码"。顾名思义,它是苹果一种用作加解密算法处理的框架,方便iOS开发者使用,它的接口为C语言形式,我们可以通过函数名、枚举名直观的了解它。
相关内容介绍
首先呢,是CommonCrypto头文件的内容,我们引用#import<CommonCrypto/CommonCrypto.h>
之后,可以在CommonCrypto.h
当中我们可以看到以下的几个文件:
<CommonCrypto/CommonCryptor.h> //常用对称加解密,例如AES、DES等
<CommonCrypto/CommonDigest.h> //常用消息摘要, 例如MD5、SHA1等
<CommonCrypto/CommonHMAC.h> //HMAC 哈希消息认证
<CommonCrypto/CommonKeyDerivation.h> //PBKDF导出密钥相关.
<CommonCrypto/CommonSymmetricKeywrap.h> AES Key Wrap
其中
-
CommonCryptor
文件中最上方有一段苹果对该文档的摘要、介绍说明以及如何使用的英文文档。Generic interface for symmetric encryption
直译是对称加密的通用接口,包含了块加密和流加密两种类型。它们分别是AES
、DES
、3DES
、CAST
、BLOWFISH
和RC2
以及RC4
。 -
CommonDigest
文件中包括如MD5
,SHA家族
等哈希摘要算法。 -
CommonHMAC
文件中包含是HMAC+MD5
、HMAC+SHA1
等,是HMAC算法利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。 -
CommonKeyDerivation
是使用PBKDF导出一个可用的密匙。 -
CommonSymmetricKeywrap
中文件名称说明是SymmetricKeywrap
(对称加密加密密匙),但是在文档中苹果官方声明目前只有AES一种对称加密算法可用.
从以上说明我们可以看出基本常用的加解密,哈希摘要、密钥加密等等相关的内容,苹果大体上已经给我们封装好了,可以直接使用,当然肯定有些细节的地方,需要自己去实现。在这个库里面,还有两个文件分别是,CommonCryproError
和CommonRandom
。
关于这个框架的文件现在大体上介绍完了,开始第一部分常用加解密CommomCryptor的使用说明。