常见加密方法

2021-07-13 10:13:07

数据的价值在于使用,不可避免需要通过网络传输,在传输过程中网络(TCP/IP)是不可信的,因此数据很容易被第三方截获被滥用,如果被恶意使用会造成不可估量的损失,因此,加密技术是必选项。
加密一般遵守业内比较通用的算法,但除了算法外,还有流程管理上的相关性,因此这里加密方法而且不用加密算法来概括。

一些共识

首先达成一些共识

加密

加密就是用密钥对数据进行数值运算,把数据变成第三者无法理解的形式的过程。

解密

解密就是通过密钥进行数值计算,把密文恢复成原本数据的过程。

明文

未通过加密处理的原始数据,或使用正确方法解密后的数据,可以直接使用,敏感内容的明文尽量避免在网络上传输。

密文

使用特定加密算法,对明文进行加密后的数据,不可以直接辨识或使用,一般可以放心的在网络上传输。

数据传输时的主要问题

窃听

假设A向B传输信息,被其它人看到,使用加密技术来应对。

假冒

假设A向B传输信息,B接收到的消息是A以外的用户冒充的,使用消息验证码或数字签名技术来解决。

篡改

假设A向B传输信息,B收到的数据由于人为或故障并不是A发出来的原始数据,也可以使用消息验证码或数字签名技术来解决。

否认

假设A向B传输信息,B收到后A否认这个数据是自己发出的,可以使用数字签名来应对。

加密类型

为了适用不同的加密需求,主要有对称加密、非对称加密、Hash(摘要)算法、混合加密等几种类型。

对称加密

加密和解密使用相同的密钥我们一般称为对称加密。常见的对称加密算法有:AES、DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6等,其中AES的应用最为广泛。

适用场景

本地数据加密、https通信、网络传输等

处理流程

  1. A欲向B发送数据前,需要先将密钥通过任何方式提供给B;
  2. A向B发送数据,B接收数据;
  3. B使用A曾经发送过来密钥解密,得到原始数据;
  4. B可向A回复数据,重复上述1-3的过程。

对称加密的特点

  1. 密钥管理是个难点,需要避免被非法获取
  2. 安全性比较适中
  3. 加解密速度比较快
  4. 比较适用于内部系统

非对称加密

加密和解密使用不同的密钥,一般加密的密钥称为公钥,可以分发给需要发送数据的一端,解密的密钥称为私钥,一般自己保留,绝不外传。拿到公钥相当于有了向持有私钥的一方发送数据的资格。常见的算法有RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)等。

适用场景

https会话前期、CA数字证书、信息加密、登录认证等

处理流程

  1. B欲接收A的数据,首先需要自行生成公钥和私钥,再通过任意方式将公钥发至A;
  2. A欲发送数据至A,首先使用B的公钥对数据进行加密,然后发送密文;
  3. B接收到A的密文数据后,使用自行生成的私钥对数据进行解密,得到明文,完成通信过程。

非对称加密的特点

  1. 相比对称加密更安全,可以将发送方和接收方的权限完全独立开
  2. 速度较慢,加/解密需要更多的计算资源,一般只适用于数据量小,格外敏感,价值大的数据加密
  3. 由于公私钥的设计,使用私钥加密公钥解密的方式可以用来签名

Hash(摘要)算法

Hssh是一种单向算法,即计算出来的密文不可逆,不可以再解密成明文,可以称为加密算法也可以称为一种编码格式。常见的算法有:MD2、MD4、MD5、HAVAL、SHA等。

适用场景

文件或字符串一致性校验、数字签名、鉴权协议

处理流程

  1. A对明文进行Hash计算,得到摘要
  2. A将明文数据与摘要以不同的方式发送至B
  3. B对接收到的明文进行Hash计算得到摘要,将该摘要与A发送过来的摘要进行对比,以此判断数据是否可信

混合加密

以上每一种加密算法都有长处,同时也会存在短板,实际的应用中人的创造力随着破坏力提升,把这几种算法相互结合,以达到更高更灵活的目标。

Base64

应该说Base64并不能算是一种加密算法,而是一种编码格式,在网络上最常见的用于传输8bid字节代码的编码方式之一。
Base64编码可用于在HTTP环境下传递较长的标识信息,Base编码不仅不仅比较简单,同时也据有不可读性,因此说是加密也算吧,起码可以起到混乱普通用户视听的作用啦。

Copyright tg-blog 京ICP备15066502号-2