现在信息泄露越来越严重,而强大的密码是防止个人敏感信息泄露的第一步。良许曾经分享过一篇文章,如何判断你的密码是否足够安全,点击以下链接查看:

信息泄漏时代,如何让自己的密码更安全?

在生活中,我们需要用到大量的密码,这些密码最好不要统一,否则万一泄漏的话,所有账号都暴露在风险之下。而在工作中,我们同样也需要用到大量密码,比如批量添加用户,批量设置服务器密码等。

如果靠自己去想的话,想到的密码可以不够强大,而且比较费力。下面良许就介绍 3 种方法来批量生成高强度的密码。

所谓的高强度密码,就是包含了大小写、数字、符号的密码。

1. pwgen

pwgen 的特点是可以生成一些能够被人类记住,并且也足够安全的密码。但是,如果你想生成不容易记住的随机密码,只需加上 -s 选项即可。

1.1 pwgen 的安装

对于 debian/ubuntu 系统,直接使用 apt-get 命令即可安装。

$ sudo apt install pwgen

对于 rhel/centos 系统,可以使用 yum 命令安装。

$ sudo yum install pwgen

其它系统可以使用对应的安装命令,在此不赘述。

1.2 pwgen 的用法

pwgen 最简单的用法是直接敲入这个命令,不带任何参数就可以生成 160 个密码。默认情况下,它生成的密码是易于人类记住的密码,8 个字符,包含大小写及数字。

一共 160 个,分成 20 行 8列。限于篇幅,以下结果做了缩减。

$ pwgen
ameik2oo aibi3cha epium0ie aisoh1ee nidee9ae unga0bee uph9iem1 ahn1oong
oc5ootea tai7ekid tae2yies hiecair8 wohy2ohk uab2maed hec4axoh ob6nieso
…………
ahv4yore ue2laeph fu1ethui qui7aeph fahth1nu ohk9pulo aibeez0b neengai5

如果你想生成 5 个 14 个字符长度的密码,那么可以使用以下命令:

$ pwgen -s 14 5
7yxuwdyfxgvtyd em2nt6fcexjpft u8jlrljbrclcti iruix3xu0tfxrr x8m9cb6wknot1e

如果你想生成超级难记,超级安全的密码,可以加上 -cnys 选项,使用以下格式:

$ pwgen -cnys 14 20
mq3e=vfgfz,5[b #zmj{i5|zs){jg ht_8i7oqj%n`~2 443fa5ijw-l?] ?qs$o=vz2vgqbr
^'ry0az|j9p2+0 t2oa/n7u_'|qrx esx*%_(4./qcrj acr-,8yf9&em[* !xz1c'bw?tv50o
8hfv-fk(vxwqgs q!qj?sd7xmkb7^ n#zp_y2kr%!)~ 4*pwys{bq]hh&y |4u=-q1!js~8=;
]{$n#fpx1l2b{h i|01fck.z?qtz" l~]jd_,w%5bp.e +i2=d3;bq}p+$i n.a3,.d3vq3~&i

2. openssl

openssl 命令是调用 openssl 的一些库中的各种密码学函数来生成密码,强度也相对比较高。

我们可以使用以下命令格式来生成一个 14 位的随机密码:

$ openssl rand -base64 14
wjzydqdkwf3e53tjw/c=

但是,这样一条命令只能生成一个密码,如果想要批量生成密码,就要写一个简单的 shell 语句。

$ for pw in {1..4}; do openssl rand -base64 14; done
6i0hghdbi3ohz9mil8i=
gtn+y1bvfjfanpjqwaa=
ryu+wy+0nwlf5lk7tba=
xrdngykizxakdilf2bw=

3. gpg

1991年,程序员 phil zimmermann 为了避开政府监视,开发了加密软件 pgp。这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,开发一个pgp的替代品,取名为 gnupg

我们可以使用以下格式来生成一个随机的 14 位高强度密码。

$ gpg --gen-random --armor 1 14
or
$ gpg2 --gen-random --armor 1 14
jq1mty4gba6giujrggm=

同样地,如果这个命令只能生成一个密码,如果要生成多个,那就需要写一个简单的 shell 语句。

$ for pw in {1..4}; do gpg --gen-random --armor 1 14; done
or
$ for pw in {1..4}; do gpg2 --gen-random --armor 1 14; done
f5zzlsumet2kefg6ssc=
8hh7bfns8qu0cnrvhry=
b+pet28cosr5xo05/sq=
m21bfx6ug1cbdzvgkce=

4. 小结

一个强大的密码是保证我们账号安全的第一步,重要性不容小觑。本文介绍了 3 种方法随机生成高强度密码,但还有很多工具还可以生成这样的密码,比如 makepasswdmkpasswd 等。大家平常都是怎么生成密码的?欢迎留言讨论!

最后,最近很多小伙伴找我要linux学习路线图,于是我根据自己的经验,利用业余时间熬夜肝了一个月,整理了一份电子书。无论你是面试还是自我提升,相信都会对你有帮助!目录如下: