概念 1.对称加密 2.非对称加密(公钥加密) 3.消息摘要 4.消息认证码 5.数字签名 6.公钥证书html
推荐先查看这篇文章再进行下文阅读: https://foofish.net/https-story-1.html 这里由一个请求来解释为何须要这些东西并对其概念作简短解释,结合这篇文章但愿能更便于理解。函数
这个相信大概用过或了解过的都知道,一句话:由Client发起请求进行公钥加密发送到Server,Server使用私钥进行解密,最后将数据一样进行公钥加密返回,Client进行私钥解密后处理业务。加密
看着彷佛就是那么理所应当的简单啊。我自己也是这么天真的觉得的就是加个密解个密么哈哈.net
好 接下来就从这个看似简单的流程来讲说上面这些概念都是什么做用htm
首先 流程中最明显的一环“加密”先来看看这个it
对称加密:加密解密使用的是相同密钥 优势:速度快 缺点:由于Client要告诉Server加密方式而攻击者在拦截后知道了加密方式也就知道了解密方式。 非对称加密:一端进行公钥加密而另外一端进行私钥解密 优势:解决了对称加密可能被拦截破解的可能 由于拦截者没有私钥,他无从知道怎么解密 缺点:速度比公钥慢不少io
ok到这里加密应该有个大概的概念了,加密的事情解释差很少了,这里提个问题,若是拦截者进行了篡改这时怎么办。这就用到了消息摘 要和消息认证码class
简单来讲这个是保证数据的完整惟一性,当拦截者把消息改变后,Server进行比对发现不一样就会认为这是被篡改的消息请求
可是问题又来了,虽然说能够保整完整性,可是拦截者能够进行伪造,拦截者伪造订单信息进行攻击你会有口说不清。这时又怎么办呢,“数字签名”加密解密
数字签名就是Client把消息哈希函数处理生成消息摘要,摘要信息使用私钥加密以后生成签名发送给Server再由Server提取进行一样的哈希处理获得再与Client发送过来的签名解密如,若是相等则证实是对应的Client发送的
这下看着彷佛都很完善了。还差最后一步就是公钥证书,他是作什么的呢,若是遭到拦截者把公钥换掉了呢,这时就须要有一个权威机构来认证也就是Certification Authority)CA。
证书中有用户的姓名组织邮箱地址等信息,还有公钥信息,并由CA提供数字签名生成公钥证书(Public-Key Certificate)PKC,简称证书。
这就是基本的大体流程了。 菜鸟讲解,主要是为了本身熟悉也但愿这相对的白话文能帮小白理解