常用加密方式

  • 对称加密:使用同一套密码进行加密和解密

  • 公钥加密:每个密码以私钥(secret key)和公钥(public key)成对出现,公钥进行的加密使用与其配对的私钥解密,反之亦然,相对于对称加密,速度很慢,一般不用于加密,而是秘钥交换
  • 单向加密(散列加密):只能加密不能解密。也就是说只能由明文取得密文,而不能由密文取得明文。经过单向加密得到的是一份唯一的特征码,每个数据的特征码是独一无二的,因此也叫作指纹加密。如果两次算法取得的特征码一样,那么就是同一份数据。单向加密可以用来做数据校验,如果数据被动了手脚,那么数据的特征码就不一样。常用的散列加密方式有:

    • MD5:定长128位输出特征码
    • SHA1:定长160位输出特征码
    • 还有其他方式,主要体现在特征码输出长度的不同
  • 单向加密的特点:
    • 不可逆
    • 雪崩效应:数据的微小改变,会引起特征码的巨大变化
    • 定长输出:不管加密的内容长度多少,输出的特征码长度都是一样
  • 加盐:如果两个用户使用了同样的密码,那么经过 MD5 散列加密后的特征码就是一致的,如果一个用户偶然发现另一个用户的特征码和他自己是一样的,那么就可以推断另一个用户的密码。这是不太安全的。为了安全起见,我们需要用到散列加密特点中的雪崩效应,往密码中额外加点杂质(内容),这样加密后的特征码就千差万别了。这个过程就是所谓的加盐。
原文地址:https://www.cnblogs.com/wayland3/p/10837022.html