vlambda博客
学习文章列表

简单聊几句对称和非对称加密

|概述

在EdgeX里的api Gateway中使用代理的方式对各种模块API进行访问,从之前的http协议修改为https协议并通过JWT和OAuth2两种方式进行验证。HTTPS协议之所以安全是因为传输过程中对传输的数据进行加密,HTTPS在内容传输上使用的是对称加密,在证书验证阶段使用非对称加密。那什么是对称和非对称加密呢?


|对称加密

在对称加密算法中,加密和解密用的是同一密钥。也正因为加解密都用同一密钥进行,此密钥不能公开的因此也叫私钥,这种加密方式也成为私钥加密算法。在加密的过程中明文+密钥 = 密文;解密的时候 密文+ 密钥 = 明文。常见的对称加密算法有DES ,AES, 3DES等等。


|非对称加密

非对称加密指的是算法加密和解密是两个不同的密钥;一个公钥,一个是私钥。公钥加密的属于只有对应的私钥能解开;同理私钥加密的数据也只有对应的公钥能解开。因此公钥和私钥是相对的,本身没有规定哪个是公钥或私钥。


|实现过程
  1. 接收方生成一对密钥,公钥和私钥

  2. 接收方将 公钥 发送给 发送方

  3. 发送方用 收到的公钥 对数据加密,然后再发送给接收方

  4. 接收方收到数据后用自己的私钥解密


因此至始至终传输过程中私钥都在接收方手上,解密只能在接收方进行因此保证了数据传输的安全。


|数字签名

数字签名通常用来验证发送方的身份并保护数据的完整性。例如说发送者大伟想要发一些学习资料给他的同学,他为了证明资料是自己发的(防止别人冒用他的ID发送),于是用自己的私钥对资料进行加密(既签名),所有收到资料的人都能用发送者的公钥进行验证。
因此保证了1. 数据是发送者自己发的,2. 保证数据签发到收到为止没有进行过修改。