欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

加密与解密

程序员文章站 2022-06-22 09:22:42
...
我本身不是学密码出身的,但在工作中经常要使用加密与解密的东东,因为从事金融领域,没有办法,对安全性比较高,所以必需要接触到加密与解密的知识。在这一篇中,不具体讨论任何加密和解密的实现代码,只是从现实的角度去理解加密和解密。

数据的安全性体现在以下几点上:
1.数据加密;
2.数据的完整性;
3.数据的信任性。

对于加密而言,就是明文加密成密文,你拿去了也没有用。现在有两种加密方式:
1.对称加密。加密与解密用同一套密钥,如果这个密钥被人获取了,那你就完蛋了。
2.非对称加密。加密与解密使用非同一套密钥,这样对比对称加密而言,安全性就高多了。但是非对称加密的处理速度要低于对称加密的处理速度。

数据的完整性,就是获取的是完整的数据,而不是部分数据。常用的方式使用MD5来验证。

数据的信任性,就是获取的数据是来自我信任的一方,可以使用数字签名技术来实现。但是它使用的还是非对称加密的思想。

非对称加密可以维护多套密钥对,即公钥和私钥是一一对就的。
一般的加密过程是:公钥加密,私钥解密;
验签的过程:私钥加密,公钥解密。

数字证书的作用有两点:一点是是身份认证,另一个是提供公钥。

以上就是加密与解密的内容,当然只是一个非常概述的描述。

https流程:

1. 客户端发起访问;
2. 服务器维护一个私钥和一个CA证书(包含公钥);
3. 服务器向客户端返回包含服务器公钥的CA证书;
4. 浏览器校验证书,如果有效走步骤5,此时已获取服务器公钥;
5. 使用服务器公钥加密一个随机数(该随机数以后会用来作为对称加密的密钥);
6. 使用服务器私钥解密获得浏览器传过来的随机数,然后对返回的内容使用该 随机数进行对称加密;
7. 响应http请求,返回加密后的内容;
8. 解密服务器返回的内容并渲染到页面上。

整个https流程实际上是: 使用非对称加密算法保证对称加密密钥的安全传递,然后使用对称加密来保证数据传输过程中的安全性