千万别再用了,这些加密算法
🎈 作者:Linux猿
🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!
🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬
通常意义上,加密算法可以分为三大种类:消息摘要算法、对称加密算法和非对称加密算法。下面先来看一下这三种加密算法。
🍓一、消息摘要算法
消息摘要算法是将一段信息经过加密后产生一段固定长度的字符串,比如:128 位、256位长度。
✨1.1 特性
(1)相同信息加密后产生的字符串相同;
(2)具有不可逆性,不能从加密后的字符串推到出原消息;
(3)可以用于数字签名;
✨1.2 在线计算摘要
下面直接来看一个例子,如下所示:
上图中,使用 MD5 算法对 "CSDN Linux猿" 进行了加密,可以看到,哈希值为:48e93a303a9454a94697e1f86056f54a,这个哈希值具有唯一性。
🔶🔶🔶🔶🔶 我是华丽的分割线 🔶🔶🔶🔶🔶
🍓二、对称加密算法
对称加密算法是指加密秘钥和解密秘钥都是同一个秘钥的加密算法。
✨2.1 特性
(1)只有一个密钥,既用于加密,也用于解密;
(2)加/解密速度较快;
✨2.2 在线加解密
下面直接来看一个例子,如下所示:
在上图中,对明文 “CSDN Linux猿” 使用密钥“Linux”,加密算法 AES 进行了加密。在解密过程中,使用同样的密钥“Linux”进行了解密,得到了原来的明文,这就是对称加密算法加解密原理。
🔶🔶🔶🔶🔶 我是华丽的分割线 🔶🔶🔶🔶🔶
🍓三、非对称加密算法
非对称加密算法是指加密秘钥和解密秘钥不是同一个秘钥的加密算法。
✨2.2 特性
(1)有两个秘钥,公钥用于解密,私钥用于加密,私钥一般不公开;
(2)信息经过公钥加密后,私钥能够解密,获取原消息;
(3)加/解密速度较慢;
✨2.3 在线加解密
下面直接来看一个例子,如下所示:
首先,需要生成公钥和私钥,分别用于加密和解密,公钥如下所示:
私钥如下所示:
使用公钥对 “CSDN Linux猿”,加密算法 RSA 进行加密,如下所示:
使用私钥对加密后的数据进行解密,如下所示:
上图中,将密文解密为 “CSDN Linux猿”。
🔶🔶🔶🔶🔶 我是华丽的分割线 🔶🔶🔶🔶🔶
🍓四、不安全的加密算法
下面就来看一下哪些加密算法不建议再使用了。
✨4.1 DES
DES 是数据加密标准(Data Encryption Standard)的缩写,是一种对称密钥加密算法。
1976年美国联邦政府将其确定为国家标准。但是,在1999年1月,distributed.net 与电子前哨基金会合作,在22小时15分钟内公开破解了一个 DES 密钥。
注意:通常说的加密算法被破解,一般是该加密算法有一组或几组密钥能在有限的时间内找到解,并不是说加密算法完全不能用了。
✨4.2 3DES
3DES 是三重数据加密算法(Triple Data Encryption Algorithm)的缩写,是一种对称加密算法。
从名称就可以知道,DES 和 3DES 有一定关系,3DES 比 DES 安全强度更高,3DES 是对每个数据块应用三次 DES,具有三个独立密钥。
但是,在 2017 年 3DES 已被 NIST 弃用,自 OpenSSL 1.1.0 版 起,默认不包含 3DES,并将其视为“弱密码”。
✨4.3 md2、md4、md5
从名称上来看,md2、md4、md5 显然是一个系列,MD 是 Message-Digest Algorithm 的简写,是一种信息摘要算法,也称为哈希算法,具有不可逆性。
但是,在 2009年,中国科学院谢涛和冯登国仅用了 2^20.96 的碰撞算法复杂度,破解了 MD5 的碰撞抵抗。2011年,RFC 6151 禁止 MD5 用作密钥散列消息认证码。
🔶🔶🔶🔶🔶 我是华丽的分割线 🔶🔶🔶🔶🔶
🍓五、总结
尽量避免过时/不安全/被遗弃的加密算法的使用,后面将会讲解推荐使用的加密算法。
⚡参考文献⚡
[1]
[2]
- 点赞
- 收藏
- 关注作者
评论(0)