6

教你如何在 Linux 中生成复杂密码并且检查密码强度

 2 years ago
source link: https://os.51cto.com/article/707230.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
教你如何在 Linux 中生成复杂密码并且检查密码强度-51CTO.COM
教你如何在 Linux 中生成复杂密码并且检查密码强度
作者:逄增宝 2022-04-23 16:36:30
在本教程中,我们将讨论如何生成复杂密码并且检查密码强度。

263ce8666461b4154fe734a84495cbeb932f79.jpg

生成复杂的密码

强密码应由字母、数字和符号的混合组成。第二个要求是不要使用已知单词、出生日期或姓名,因为很容易受到字典攻击。密码应该包含多少个字符?实际上没有具体的答案,但是超过 16 个字符是一个不错的选择。因此,如果你的系统具有 OpenSSL 或 GPG,可以使用这些工具来完成生成密码的任务。例如,下面我们使用​​GPG​​生成密码:

[root@localhost ~]# gpg --gen-random --armor 2 12
zXVKRoB0/V4BN9QG

如果不想带有特殊字符,可以使用​​sed​​命令过滤掉:

[root@localhost ~]# gpg --gen-random --armor 2 12|sed 's/[^a-zA-Z0-9]//g'
n4ciIlRLkLTkzwg

上面使用​​--gen-random​​选项来随机生成字符。使用​​--armor​​选项来生成ASCII字符。后面的选项2可以使​​[0][1][2]​​三个选项,他表示质量级别。最后一个数字代表字符长度。相同的,我们可以使用​​OpenSSL​​来生成密码:

[root@localhost ~]# openssl rand -base64 12
QIrH/PLXqzmLuI/a

同样,也可以使用​​sed​​命令过滤掉特殊字符:

[root@localhost ~]# openssl rand -base64 12| sed 's/[^a-zA-Z0-9]//g'
lXIg4cKLCLVvsi

检查密码强度

现在我们有了密码,是时候看看它是否通过了测试:您的密码是否足够强大?为了确定密码是否足够强大,我们将在Centos8中安装使用​​cracklib​​工具。

[root@localhost ~]# yum -y install cracklib

下面我们先测试一个简单的密码:

[root@localhost ~]# echo "a1b2c5" | cracklib-check 
a1b2c5: it is based on a dictionary word

067b5dc99f4d48da93670588c0f79f3ab7d311.png

如果使用普通单词呢?

[root@localhost ~]# echo "Administrator"|cracklib-check 
Administrator: it is based on a dictionary word

82411a1016e25183e34448085a2b8611a91719.png

上面两个密码的输出,同样提示在词典中能查找到。下面我们测试一个生成的密码看一下强度如何:

[root@localhost ~]# openssl rand -base64 12 | cracklib-check 
VdBlmvIgGY4ehWly: OK

可以看到密码没问题。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK