博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据传输的加密过程
阅读量:6595 次
发布时间:2019-06-24

本文共 992 字,大约阅读时间需要 3 分钟。

加密技术是为了保护敏感数据在网络传输中的安全,就像日常生活中使用的淘宝、支付宝、微信等等软件,如果涉及到金额的数据在网络中不加密传输,那是极易被别人窃取、篡改的,通信中的数据加密技术就显得尤为重要。各类加密工具的原理都是大同小异,这里对常见加密原理进行解读。

img_978a5cbb7f0b5d78a19fe96a4782b4eb.png

***

一、对称加密

加密数据与解密数据使用相同的密钥,这种加密方法称为对称加密

  • 特点
  • 加密与解密使用相同密钥,加密解密速度快
  • 将原始数据进行切块,逐个进行加密。
  • 缺点
  • 每一个通信的对象都有一把密钥,如果通信对象过多导致密钥过多。
  • 密钥分发问题,如何保证密钥不被窃取

img_fd65648fdbd3878d2deb0fdfa4b58b33.png


二、非对称加密

加密数据与解密数据使用一堆不相同的密钥,公钥公开给所有人,私钥自己保存。使用公钥加密的数据只有自己的私钥可以解开。

  • 特点
  • 用公钥加密数据,只能使用配对的私钥进行解密。
  • 用私钥加密的数据,只能使用配对的私钥进行解密
  • 缺点
  • 加密解密速度慢、时间长,不适用于对大数据进行加密解密。

三、单项散列

单项散列又称为hash算法,把任意长度的数据、字符加密后得到一个固定长度的特征码。

  • 特点
  • 加密后输出的特征码长度固定
  • 加密后的特征码只跟数据内容有关,与数据名称无关
  • 可以用作数据的指纹
  • 得到数据的特征码无法推算出原数据的内容

  • 缺点
  • 相同内容的文件加密后的结果相同
  • 通常随数据一同发出,极易被窃取

img_b3e1924c48790f36950e07d1c1814e40.png


四、加密通信的综合应用

以上三种如果单独使用任何一种对数据进行数据加密的话都是不安全的,那么现在在互联网中的数据时如何传输的呢?其实数据在互联网中并不会使用单一加密技术,往往都是各类技术混合使用,互补优缺点使数据的传输更加安全。

  1. 首先通过TCP三次握手进行连接,然后客户端发送hello包到服务端,服务端回应一个hello包,如果客户端需要再次发送数字证书, 则发送数字证书到客户端。
  2. 客户端得到服务器的证书后通过CA服务验证真伪、验证证书的主体与访问的主体是否一致,验证证书是否在吊销证书列表中。如果全部通过验证则与服务器端进行加密算法的协商。
  3. 然后是用证书中服务器的公钥加密【对称秘钥】发送给服务器端,【对称秘钥】只能用服务器的私钥进行解密,当服务器通过私钥解密【对称秘钥】后。使用对称秘钥将客户端请求的数据发送到客户端,客户端在用对称秘钥进行解密,从而得到想要的数据。

注:对称秘钥非长期有效,每隔一段时间甚至每一次数据的传输都使用不同的对称秘钥。

img_07a87712cfede697c9c6d66db984c813.png

转载地址:http://pzjio.baihongyu.com/

你可能感兴趣的文章
Git@OSC 项目推荐 — Spark 源代码注释与翻译
查看>>
通过 LLVM 在 Android 上运行 Swift 代码
查看>>
《HttpClient官方文档》1.7. Redirect handling 翻译
查看>>
《像计算机科学家一样思考Python》——4.9 文档字符串
查看>>
《C程序员从校园到职场》一第2章 学校到职场2.1 认清自身不足
查看>>
《重构:改善既有代码的设计》目录—导读
查看>>
jquery遍历的json有两层list时的解决方法
查看>>
价格战之后,云计算市场将迎来云服务生态竞争
查看>>
白狐CMS医疗问答系统源码
查看>>
Sql语句-case when then else end
查看>>
Python_编程特色
查看>>
ant打jar包
查看>>
【Android】The application has stopped unexpectedly.Please try again.
查看>>
为什么要使用Ajax
查看>>
java web开发使用伪静态
查看>>
CISCO交换机密码恢复
查看>>
rsync安装部署
查看>>
快速排序
查看>>
数据库周边资源汇总
查看>>
lucene全文索引遇到的问题
查看>>