加密解密算法与Hash算法

  • 对称加密:密钥只有一个,解密、解密都是这个密码,加解密速度快,典型的对称加密有DES、AES、RC4等
  • 非对称加密:密钥成对出现,分别为公钥和私钥,从公钥无法推知私钥,反之,从私钥也无法推知公钥,加密和解密使用不同的密钥,公钥加密需要私钥解密,反之,私钥加密需要公钥解密。非对称加密速度较慢,典型的非对称算法有:RSA,DSA,DSS.
  • Hash算法,这是一种不可逆的算法,它常用于验证数据的完整性。

 对称加密:下面介绍AES:

AES是典型的对称加密算法,假设发送方要获取用户信息,如果没有任何加密算法,发送方发送的是一个明文信息"获取用户信息",

未加密的情况下:

加密解密算法与Hash算法_第1张图片

如果消息在网络传输中被人截获,即使无法篡改,也可以偷窥消息的内容,从而暴露了通信双方的私密。

加密的情况:

加密解密算法与Hash算法_第2张图片

具体的工作的步骤如下:

  1. 发送方利用密钥123456,加密明文为"获取用户信息",加密结果为aaCURzhJGiOYIujQYwbocw==。
  2. 发送方把加密后的你内筒aaCURzhJGiOYIujQYwbocw==传送给接收方。
  3. 接收方收到密文aaCURzhJGiOYIujQYwbocw==,利用密钥123456还原为明文“获取用户信息”。

对称加密算法是可逆的,它的主要作用 是保证私密信息不被泄露。

AES 算法的基本概念:密钥、填充、模式。

  • 密钥:AES 支持三种长度的密钥:128位,192位,256位,位数越多,安全性越高
  • 填充:

             1.NoPadding:不做任何填充,但是要求明文必须是16字节的整数倍

              2.PKCS5PAdding(默认):如果明文少于128bit,在明文末尾不足相应数量的字节,最后一个字符值等于缺少的自己数,其他字符填充随机数。

  • 模式:ESB模式(默认)、CBC模式、CTR模式、CTR模式、CFB模式、OFB模式等

MD5算法:

MD5算法就是信息摘要的一种实现,它可以从任意长度的明文字符串生成128位的哈希值。

下面以支付宝转账为例:

不用MD5加密:

加密解密算法与Hash算法_第3张图片

被篡改的情况下:

加密解密算法与Hash算法_第4张图片


这种场景下就需要信息摘要技术了。信息摘要要把明文内容按某种规则生成一端哈希值,即使 明文信息只改动了一点,生成的记过也完全不同。

信息摘要生成规则( secret+param+secret):可以任意添加,只要客户端和服务端加密规则一样就可以。

信息摘要的三个步骤:

1.收集相关业务参数,这里是金额和目标账户。

2.按照拼接规则拼接起来

3.利用MD5加密,生成128位的二进制

客户端使用MD5(secret+金额_10000+目标账户_12345678+secret)生成MD5

服务端收到后获取到用户发送的三处,也使用相同的拼接规则进行加密:然后比对客户端传过来的MD5和生成的MD5,如相同,则签名对比成功,信息没被篡改。

非对称加密:SHA

SHA也是一种生成信息摘要的算法,SHA有很多版本,最大的版本分类是SHA-1和SHA-2,SHA-2又分了很多子版本;



参考:https://mp.weixin.qq.com/s/RIZuU8gmM_-HyK5DBr4pmw

    

                  加密解密算法与Hash算法_第5张图片

你可能感兴趣的:(tomcat)