Encryption Algorithm

加密算法

常见的加密算法从简单到复杂可以分为一下几类

  • Base64 编码
    • 简单的字符串压缩
    • 特殊字符通过 Base64 编码后进行参数传递可以免去转义的处理
  • 单项散列函数: MD5、SHA1、SHA256…这类算法可以默认当作是不可逆的(这个说法并不绝对,比如彩虹表攻击)
    • 信息摘要: 比如将一个视频文件转换成一个 128 bit 的 MD5 码作为标识
    • 加密: 比如将明文密码 MD5 后存到数据库里面,虽然你并不知道用户名的密码,但是你依然可以校验用户密码对不对。
  • 消息认证码: HMAC-MD5、HMAC-SHA256…对单项散列函数的功能性增强,在散列过程中加入只有通信双方知道的 Secret,Signature = Hash(Data, Secret),传递数据的同时把签名也加上,接收方算一下签名对比一下就知道数据是不是被篡改了。
    • 签名算法: 在 JWT 里面,用来校验明文数据是否被篡改。JWT 有 Header.Payload.Signature 三部分构成,其中 Header 和 Payload 都是 Base64URL 编码压缩的字符串,其实就相当于明文,默认是不会加密的。
  • 对称加密: DES、3DES、AES。加密方和解密方使用相同的密钥,因此叫对称加密。对称加密是可逆的,可以解密。对称加密最大的缺点是密钥安全性,如果在多方同步密钥的过程中被截获,就失去加密的意义了。
    • 适用于基础的数据加解密场景,只要有方式避免密钥泄漏,也是没什么问题的
  • 非对称加密: RSA,非对称加密主要是解决对称加密的痛点的,非对称加密有一对密钥,公钥加密,私钥解密。公钥随便传,谁都可以拿到,私钥只有解密方自己有。
  • 数字签名:
  • 证书:

Reference

qin

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏

打开支付宝扫一扫,即可进行扫码打赏哦