加密算法的初步了解

1.AES - 对称密码算法

AES 主要应用在数据和文件的加密保存,需要了解工作模式,初始化向量,填充模式

kCCKeySizeAES256

密钥长度,枚举类型,还有128,192两种。

kCCBlockSizeAES128

块长度,固定值 16(字节,128位),由AES算法内部加密细节决定,不过哪种方式、模式,均为此。

kCCAlgorithmAES

算法名称,不区分是128、192还是258。kCCAlgorithmAES128只是历史原因,与kCCAlgorithmAES值相同。

kCCOptionPKCS7Padding

填充模式,AES算法内部加密细节决定AES的明文必须为64位的整数倍,如果位数不足,则需要补齐。kCCOptionPKCS7Padding表示,缺几位就补几个几。比如缺少3位,则在明文后补3个3。iOS种只有这一种补齐方式,其它平台方式更多,如kCCOptionPKCS5Padding,kCCOptionZeroPadding。如果要实现一致性,则此处其它平台也要使用kCCOptionPKCS7Padding。

kCCOptionECBMode

工作模式,电子密码本模式。此模式不需要初始化向量。iOS种只有两种方式,默认是CBC模式,即块加密模式。标准的AES除此外还有其它如CTR,CFB等方式。kCCOptionECBMode模式下多平台的要求不高,推荐使用。CBC模式,要求提供相同的初始化向量,多个平台都要保持一致,工作量加大,安全性更高,适合更高要求的场景使用。

2.摘要算法- 单向不可逆,速度快  (哈希算法hash)

2.1 消息摘要算法MD5

MD5算法将任意明文(不为空)映射位32位字符串。

2.2 安全散列算法SHA

SHA按结果的位数分为256、484、512三种基本方式,根据对结果的要求而选择即可。通过CC_SHA256_DIGEST_LENGTH等枚举类型进行设置。

3.非对称算法

3.1 RSA 公钥(锁头-加密用)私钥(钥匙-解密用)

客户端发送请求向服务器,服务器将公钥发送给客户端,客户端(TSL)验证公钥是否有效,有效则生成一个随机数,客户端用公钥对随机数加密发送给服务器,服务器用私钥对密文解密得到随机数。之后的通信用随机数进行加密解密。

来源:

iOS http & https & 网络请求过程 -

iOS常用加密算法介绍和代码实践 - CocoaChina_让移动开发更简单

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

你可能感兴趣的:(加密算法的初步了解)