14.常见的3种加密算法:对称加密、非对称加密、单向加密

1. 对称加密

对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。

优点:算法简单,加密解密容易,效率高,执行快。

缺点:相对来说不算特别安全,只有一把钥匙,密文如果被拦截,且密钥也被劫持,那么,信息很容易被破译。

常见的对称加密算法:DES,AES,3DES等等。

  • DES(Data Encryption Standard):数据加密标准(现在用的比较少,因为它的加密强度不够,能够暴力破解) 
  • 3DES:原理和DES几乎是一样的,只是使用3个密钥,对相同的数据执行三次加密,增强加密强度。(缺点:要维护3个密钥,大大增加了维护成本) 
  • AES(Advanced Encryption Standard):高级加密标准,目前美国国家安全局使用的,苹果的钥匙串访问采用的就AES加密。是现在公认的最安全的加密方式,是对称密钥加密中最流行的算法。

2. 非对称加密

非对称加密指的是:加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。

优点:安全,即使密文被拦截、公钥被获取,但是无法获取到私钥,也就无法破译密文。作为接收方,务必要保管好自己的密钥。

缺点:加密算法及其复杂,安全性依赖算法与密钥,而且加密和解密效率很低。

常见的非对称加密算法:RSA,ECC,DSA等等。

3.单向加密

单向加密算法只负责加密,不负责解密,最常见的是用于数据完整性的校验。Hash加密就是单向加密方式,直译为哈希加密,又称为散列加密。

MD5(Message Digest Algorithm 5)加密方式的缺点是对相同的数据加密,得到的结果是一样的,所以是极不安全的,不信的话可以到这个网站试试:cmd5网站。为了使MD5更安全,往往加“盐“处理,每次加密的时候首先会生成一个随机数就是“盐“,之后将这个随机数与密码进行hash,即使同样的密码加密过后也是不同的结果。

SHA(Secure Hash Algorithm)加密方式(sha1,sha256等等)主要适用于数字签名标准里面定义的数字签名算法。是一种比MD5的安全性强的算法。

HMAC加密方式:给定一个密钥,对明文加密,做两次“散列”,得到的结果还是32为字符串。在实际开发中,密钥是服务器生成,客户端发送请求会拿到KEY。一个账号对应一个KEY。

Hash算法因为其具有不可逆性,且输出长度固定。所以主要用于做摘要(Digest)场景,也就是数字签名。虽然都已经被破解,但是我们可以采用多遍无规则hash一样很难破解或者在保存登陆密码的场景可以加”盐”值增强加密强度。

典型Bcrypt就是加“盐“的方式,具体来说就是在原有材料(用户自定义密码)中加入其它成分,以此来增加系统复杂度。当这种“盐“和用户密码相结合后,再通过摘要处理,就能得到隐蔽性更强的摘要值。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/basic/thinking-in-programming/3685.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注