加密 ,解密

237 阅读4分钟
  1. 名词解释

  • 密钥: 用于加密/解密的钥匙

密钥本质上是非常非常大的数。密钥的尺寸用位(bit)来衡量,1024位密钥代表的数是非常巨大的。 在公开密钥加密方法中,密钥的尺寸越大,密文就越安全
假定有相同的明文和相同的算法,不同的密钥会生成不同的密文

  • 明文: 加密前的信息
  • 密文: 加密后的信息
  • 加密: 就是使用加密算法把明文生成密文的过程(可逆加密使用密钥与加密算法一块进行加密,不可逆加密不使用密钥)
  • 加密算法:加密的规则方式
  1. 加密算法分类

加密算法分为:可逆加密不可逆加密
可逆加密又可以分为:对称加密非对称加密

  • 不可逆加密算法 :指不可以从密文中推算出明文的加密算法( 数据一旦加密,没有与之对应的秘钥进行解密 )

有MD5、HMAC、SHA1、SHA-224、SHA-256、SHA-384、SHA-512等算法
不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密

例如: MD5是一种不可逆的加密方式,虽然现在很多算法也可以将md5解密出来,但是md5还是具有很大程度上的不可逆。MD5通常被用在用户登录信息的加密处理,服务器的数据库存的就是这个被加密后的字符串,用户在登录时服务器只要比较你客户端发送的md5字符串和它数据库字符串相同就可以正常登录了.

MD5算法有以下特点:
1、压缩性:无论数据长度是多少,计算出来的MD5值长度相同
2、容易计算性:由原数据容易计算出MD5值
3、抗修改性:即便修改一个字节,计算出来的MD5值也会巨大差异
4、抗碰撞性:知道数据和MD5值,很小概率找到相同MD5值的原数据。
5、相同的数据得到的md5值是相同的

  • 可逆加密算法: 指可以通过特定秘钥从密文中推算出明文的加密算法

对称加密:在数据加密和解密的时用的都是同一个密钥,有DES、AES等算法
非对称加密: 非对称加密中有两个密钥,【公钥】、【私钥】;这两个密钥是不同,不对称,有DH、DSA、RSA、ECC等

非对称加密
公钥:配合加密算法生成密文,是公开给任何人使用的, 公钥加密的数据只能由私钥能解

私钥: 用来解密密文 ,是保密的,由消息接收者自己保管的,不能公开; 私钥加密的数据只能由公钥能解
公钥和私钥是一 一对应的,是不能单独生成的,一对公钥和密钥统称为密钥对(key pair)
解决问题: 非对称加密能解决密钥传递的问题,我们访问的网站私钥是秘密保管的,对外公开公钥;这样就算消息被黑客截取到了,那么没有私钥也解不出消息报文

  1. 混合加密

是不是就可以认为使用非对称加密替代加密算法了呢?
肯定不是,因为非对称加密都是基础复杂的数学难题,运行速度上很慢,性能不是很给力;
仅仅使用非对称加密虽然解决了安全,但是速度不行;

比如 消息发送方为A, 消息接收方为B

  1. B生成公钥与私钥, 把公钥给到A
  2. A接收到公钥后,把在对称加密中使用的密钥进行加密
  3. B使用私钥对密钥进行解密 接下来,A就可以使用这个经过加密的密钥对数据加密,然后发送给B就好了
混合加密示意图

4997216-e834f740e80683a2.webp