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 & 网络请求过程 - 简书
网友评论