MD5,Des,RSA加密解密(2)

接下来我们看一下接收方所执行的步骤:
1>.使用发送方的公钥对消息摘要进行解密(确认了消息是由谁发送的)。
2>.使用自己的私钥对消息进行解密(安全地获得了实际应获得的信息)。
3>.将消息进行散列运算,获得消息摘要。
4>.将上一步获得的消息摘要 和 第一步解密的消息摘要进行对比(确认了消息是否被篡改)。

可以看出,使用了接收方,发送方全部的四个秘钥,再配合摘要,就满足了消息安全传递了。但是非对称加密是很耗时的,所以这个方案是很低效的。实际上,我们

可以通过它来解决对称加密中秘钥传递的问题。我们用高级实现方式进行对称加密中密钥的传递,之后的实际数据传递,采用对称加密方式完成,因为此时已经是安全的了。

5>证书机制

证书是用来做什么的?上面的各种模式中,我们假设接收方或者发送方所持有的,对方的公钥是正确的(确实是对方公布的)。实际上,如果不采取措施,双方在网络中

传递公钥时,一样可以被篡改。为了解决这个问题,就西药证书机制了。比如百度要公布公钥时,找一个公正的第三方,就是常说的证书颁发机构(Certificate Authority),

百度将自己的身份消息以及公钥交给第三方机构,第三方机构对其进行身份证实,然后将其消息和公钥打包成证书(Certificate)。当我们需要获取公钥时,只需要获取证书,就能从中提取公钥。

6>不可逆加密:从密文不能还原成原文

7>对称可逆加密:加密key和解密key是同一个,能从密文进行还原成原文

8>不对称可逆加密:加密key和解密key不是同一个,能从密文进行还原成原文

MD5,Des,RSA加密解密

二.MD5不可逆加密

首先对于同一个字符串,任何语言加密的MD5的结果都是一样的。MD5是把一个字符串串做摘要,产生一个32位的值,每一位都有0-9和A-F这16种可能。

且任何数据的MD5后的结果都不一样。

用途:

1>利用字符串相同,结果相同的特点

-做登录窗口的密码验证:输入密码->MD5->保存->登录->输入的密码MD5->进行对比

-文件MD5摘要:主要是检查文件是否被篡改。相同的文件,MD5摘要才能相同。

MD5现实中应用的比较广泛,比如百度云的极速秒传,主要就是利用第一上传文件的时候,会在服务器上保存MD5;如果再有文件上传,先计算文件的MD5,然后去服务器上进行匹配,如果匹配上了,就只上传文件名,至于文件内容就不再次上传了。另外SVN和Git都是应用的MD5。

三.Des对称可逆加密

   Des加密,加密的key和解密的key是同一个。对一个字符串可以加密成密文,密文也可以还原成原文 .Des加密速度比较快,可用于数据加密,但是秘钥安全是问题。

Des算法是公开的,即使拿到密文,也推算不出秘钥,自然也推不出原文。

用途:

加密狗:通过硬件读取得到key,然后用key加密

四.RSA非对称可逆加密

RSA加密的key和解密的key不是同一个,从密文也可以还原成原文。RSA加密速度不快,但是安全性能好。加秘钥&解秘钥是一组的,知其一,不能推出另外一个。

加秘钥和解密要都可以当做公钥或者私钥。

1>私钥(加秘钥),公钥(解秘钥)=>保证消息来自私钥持有者,可以理解为身份验证

2>公钥(加秘钥),私钥(解秘钥)=>保证消息只有私钥持有者能得到。下图能更好的进行说明:

乙方把加秘钥作为公钥,进行公开;把解秘钥做为私钥,自己保存。甲方->乙的公钥加密->乙拿自己的私钥(解秘钥)得到明文

五.CA证书

流行的CA证书由CA机构颁发的,网站不带SSL的都有风险提示,网站不带https都有危险提示。

这些是把前面的对称可逆加密,非对称可逆加密,不可逆加密的综合应用。

CA证书

数据在网络上传输,是不安全的。为了保证在浏览器上数据传输安全。

首先由权威机构发布CA证书,CA机构用自己的私钥用MD5,加密一下前面5点的信息,得到一个数字签名。

分析上图

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/54726943738fdb5a40559b7b7c8cd618.html