MD5,Des,RSA加密解密
Posted dfcq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MD5,Des,RSA加密解密相关的知识,希望对你有一定的参考价值。
一.加密和解密
下面先熟悉几个概念
1>对称加密:加密的key和解密的key是同一个
2>非对称加密:加密点的key和解密的key不是同一个
3>不可逆加密:从密文不能还原成原文
4>对称可逆加密:加密key和解密key是同一个,能从密文进行还原成原文
5>不对称可逆加密:加密key和解密key不是同一个,能从密文进行还原成原文
二.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点的信息,得到一个数字签名。
分析上图
1>首先百度公司向权威的CA机构,申请CA证书,需要向CA权威机构提供5条的信息,包括持有者姓名,发证机关,有效日期,证书只有人的公钥,扩展信息。
2>CA机构用自己的私钥对上面5条信息进行MD5摘要,产生一个数字签名
3>Client端内置了根证书,内置了CA的公钥
4>Server内置了CA证书
单边认证https
单边认证用在https请求
分析上图
1>A1是Client向Server发起请求,A2服务器把证书给Client,此时Client由于内置了证书的公钥自然能看到证书中的内容。此时就证明了Server端是百度了。这就是不可以加密MD5的应用
2>Client端用证书中的第四条(持证人持有人公钥)中的公钥加密“123”给Server,Sever用自己的私钥解开后,B2把解开后的字符串发给Clinet。证明了Server就是证书对应的服务器。这就是Dse非对称可逆加密的应用
3>C1是客户端随机产生一个秘钥字符串“123”最为对称加密的秘钥,然后用百度的公钥加密后传输给Server
4>C2,Server收到后,用自己的私钥解开字符串,就拿到了秘钥字符串“123”,之后Client和Server通信的时候,就用“123”把信息进行加密,然后再传输。这就是RSA对称可逆加密的应用。
双边认证
双边认证和单边认证和相似,搞懂了单边认证,双边认证就容易理解了
分析上图
1>A1和A2和单边认证一样,证明了Server是招商银行
2>A3和A4和单边认证一样,证明了Server就是证书对应的服务器
3>B1和B2,B3也类似单边认证,证明Client端是小明
4>C1是Server随机产生一个秘钥,作为对称可逆加密的秘钥,用Client的公钥加密后,传给Client
5>之后Client和Server通信,都用“123”作为秘钥加密后进行传输
以上是关于MD5,Des,RSA加密解密的主要内容,如果未能解决你的问题,请参考以下文章