加密算法的初步了解

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 ()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇文章主要讲述在Mobile BI(移动商务智能)开发过程中,在网络通信、数据存储、登录验证这几个方面涉及的加密...
    雨_树阅读 7,898评论 0 6
  • 概述 之前一直对加密相关的算法知之甚少,只知道类似DES、RSA等加密算法能对数据传输进行加密,且各种加密算法各有...
    Henryzhu阅读 8,148评论 0 14
  • 本文主要介绍移动端的加解密算法的分类、其优缺点特性及应用,帮助读者由浅入深地了解和选择加解密算法。文中会包含算法的...
    苹果粉阅读 13,954评论 5 29
  • 最近公司用到RSA数据加密传输,本人也只会使用,并不知其原理,刚好今天在csdn看到一位大牛的博客写得很到位,遂搬...
    爸比好酷阅读 5,244评论 0 1
  • 前言 在这个互联网和移动互联网高速发展的时代,数据安全成了企业的头等大事。数据安全的范畴很大,包含:技术安全、服务...
    淡淡蓝调g阅读 13,315评论 8 21