加密与解密
程序员文章站
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流程实际上是: 使用非对称加密算法保证对称加密密钥的安全传递,然后使用对称加密来保证数据传输过程中的安全性
数据的安全性体现在以下几点上:
1.数据加密;
2.数据的完整性;
3.数据的信任性。
对于加密而言,就是明文加密成密文,你拿去了也没有用。现在有两种加密方式:
1.对称加密。加密与解密用同一套密钥,如果这个密钥被人获取了,那你就完蛋了。
2.非对称加密。加密与解密使用非同一套密钥,这样对比对称加密而言,安全性就高多了。但是非对称加密的处理速度要低于对称加密的处理速度。
数据的完整性,就是获取的是完整的数据,而不是部分数据。常用的方式使用MD5来验证。
数据的信任性,就是获取的数据是来自我信任的一方,可以使用数字签名技术来实现。但是它使用的还是非对称加密的思想。
非对称加密可以维护多套密钥对,即公钥和私钥是一一对就的。
一般的加密过程是:公钥加密,私钥解密;
验签的过程:私钥加密,公钥解密。
数字证书的作用有两点:一点是是身份认证,另一个是提供公钥。
以上就是加密与解密的内容,当然只是一个非常概述的描述。
https流程:
1. 客户端发起访问;
2. 服务器维护一个私钥和一个CA证书(包含公钥);
3. 服务器向客户端返回包含服务器公钥的CA证书;
4. 浏览器校验证书,如果有效走步骤5,此时已获取服务器公钥;
5. 使用服务器公钥加密一个随机数(该随机数以后会用来作为对称加密的密钥);
6. 使用服务器私钥解密获得浏览器传过来的随机数,然后对返回的内容使用该 随机数进行对称加密;
7. 响应http请求,返回加密后的内容;
8. 解密服务器返回的内容并渲染到页面上。
整个https流程实际上是: 使用非对称加密算法保证对称加密密钥的安全传递,然后使用对称加密来保证数据传输过程中的安全性
推荐阅读
-
mysql/Java服务端对emoji的支持与问题解决方法详解
-
php笔记之:有规律大文件的读取与写入的分析_PHP教程
-
详解Linux文本文件与WIN文本文件换行格式转换命令
-
More Effective C++----(12)理解"抛出一个异常"与"传递一个参数"或"调用一个虚函数"间的差异
-
Facebook被曝与多家手机厂商签署秘密协议,常年提供用户隐私数据
-
php的phpass类加密算法
-
《写给大忙人看的Swift》 ——swift和object-c的关系会步C与C++的后尘吗?
-
html与css注意事项及小知识点
-
浅析Cookie中的Path与domain
-
读《 NFC:Arduino、Android与PhoneGap近场通信》 有感——智能的电磁场交互