iOS数据加密

相关文章:数字证书原理

SSL/TLS协议运行机制的概述

一、常用的加密算法

1、对称加密

对称加密的意思就是,加密数据用的密钥,跟解密数据用的密钥是一样的。<qq style="color:red">对称加密的优点在于加密、解密效率通常比较高</qq>。
常用加密算法有DES,3DES,AES等.

DES  数据加密标准(用的比较少,因为强度不够).
3DES 使用3个密钥,对相同的数据执行三次加密,强度增强.
AES  高级加密标准,目前美国国家安全局使用AES加密,苹果的钥匙串访问就是使用AES加密。

而对称加密的模式最为常见的是两种:ECB,CBC

ECB:<qq style="color:gray">加密文件会被分为若干个加密块,每个块都是独立进行加密,互不影响。所以,如果变动数据中的某一个地方,加密之后其对应得块也会发生变化,缺点是一旦被破解某个模块,就可以进行推理,进而有机会获取到重要数据。</qq><p>
CBC:<qq style="color:gray">使用一个密钥和一个初始化向量 (IV)对数据执行加密转换。加密文件同样会被分为若干个加密块,每个块都依赖于上一个加密块进行加密,互相牵制。所以,如果变动数据中的某一个地方,加密之后整体数据都会发生变化。可以有效地保证密文的完整性</qq>

2、非对称加密

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey);并且加密密钥和解密密钥是成对出现的。<qq style="color:red">通过公钥加密的数据,只能通过私钥解开。通过私钥加密的数据,只能通过公钥解开</qq>。常见的非对称加密算法有RSA(加密,证书生成),DSA(数字签名)
第三方代码

非对称加密算法对加密内容的长度有限制,不能超过公钥长度。比如现在常用的公钥长度是 2048 位,意味着待加密内容不能超过 256 个字节。

3、HASH加密

Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度(32个字符)的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。对用相同数据,加密之后的密文相同。
常见的Hash算法有MD5和SHA。

    //md5 处理
    class func md5(_ string:String) -> String {
        let str = string.cString(using: String.Encoding.utf8)
        let digestLen = Int(CC_MD5_DIGEST_LENGTH)
        let strLen = CUnsignedLongLong(string.lengthOfBytes(using: String.Encoding.utf8))
        let result = UnsafeMutablePointer<CUnsignedChar>.allocate(capacity: digestLen)
        CC_MD5(str!, CC_LONG(strLen), result)
        let hash = NSMutableString()
        for i in 0 ..< digestLen {
            hash.appendFormat("%02X", result[i])
        }
        result.deinitialize()
        
        return String(format: hash as String)
    }

二、HTTPS原理

HTTPS是HTTP的安全版,HTTPS的安全基础是SSL/TLS。<qq style="color:red">Https的作用:内容加密,身份认证 ,数据完整性 </qq>

https通信过程

对称秘钥用公钥进行加密,服务端用私钥解密。


1、摘要算法

数字摘要是采用单项Hash函数将需要加密的明文“摘要”成一串固定长度(128位)的密文,这一串密文又称为数字指纹,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。“数字摘要“是https能确保数据完整性和防篡改的根本原因。

2、数字签名

将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过.

数字签名只能验证数据的完整性,数据本身是否加密不属于数字签名的控制范围

3、数字证书

由一个权威的值得信赖的第三方机构(一般是由政府审核并授权的机构)来统一对外发放主机机构的公钥。<p>
证书包含了颁发证书的机构的名字 -- CA

证书的有效期

证书内容本身的数字签名(用CA私钥加密,证书颁发机构的)

证书持有者的公钥

证书签名用到的hash算法

证书验证:

1、Company在证书颁发机构"SecureTrust CA"申请到这个证书后,我们把证书投入使用,我们在通信过程开始时会把证书发给对方。

2、在操作系统中受信任的发布机构的证书中去找"SecureTrust CA"的证书,找不到证明证书可能有问题,找到的话,就用证书发布机构的根证书(一般是在操作系统中的)中的公钥,去验证证书的数字签名,确定证书的合法完整性。

3、然后就可以放心的使用证书的这个公钥进行通信了。

4、SSL/TLS

SSL协议在握手阶段使用的是非对称加密,在传输阶段使用的是对称加密。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,904评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,581评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,527评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,463评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,546评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,572评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,582评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,330评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,776评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,087评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,257评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,923评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,571评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,192评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,436评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,145评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容