linux下生成高强度密码的神器

2023年01月02日 2267点热度 0人点赞 0条评论

1. 使用 OpenSSL 来生成一个高强度密码

在所有的类 Unix 发行版、Solaris、Mac OS X 和 Windows 中都用openssl这个工具

要使用 OpenSSL 生成一个长度固定的随机密码,打开终端并运行下面的命令:

openssl rand -base64 32
openssl rand -base64 32|tr A-Z a-z|cut -c 1-32

上面的 -base64 参数将生成的密码进行 base64 编码,这样确认能用键盘打出来。
输出样例:

7r8qISYLK8P7gmMklgChtZbtUYtOy3+XlHd9duqAvYc=

上面的命令将生成一个随机的、长度为 32 个字符的高强度密码,但用 base64 编码后字符数会变长。 当然你可以使用 OpenSSL 生成任意长度的密码。

2. 在使用 Pwgen 来生成一个高强度密码

pwgen 是一个简单却非常有用的命令行工具,用它可以在短时间内生成一个随机且高强度的密码。它设计出的安全密码可以被人们更容易地记住。在大多数的类 Unix 系统中都可以获取到它。

安装 pwgen 请运行:

yum install pwgen

pwgen 安装完成后,便可以使用下面的命令来生成一个长度为 32 个字符的随机高强度密码:

pwgen 32 1

输出样例:

eiS0teiNoh3saeH9aeTaen9ro2xohy6i

上面的命令将生成一个 32 位字符长的密码,如果要生成 10 个不同的 32 位字符长的密码,则可以运行:

pwgen 32 10


pwgen 命令还有一些很实用的选项:

-c 或 --capitalize 在密码中包含至少一个大写字母
-A 或 --no-capitalize 在密码中不包含大写字母
-n 或 --numerals 在密码中包含至少一个数字
-0 或 --no-numerals 在密码中不包含数字
-y 或 --symbols 在密码中包含至少一个特殊字符
-s 或 --secure 生成完全随机的密码
-B 或 --ambiguous 在密码中不包含难于区分的字母,如 0 和 o、1 和 l
-h 或 --help 输出帮助信息
-H 或 --sha1=path/to/file[#seed] 使用某个给定文件的 sha1 哈希值来作为随机数的生成种子
-C 按列输出生成好的密码
-1 不按列输出生成好的密码
-v 或 --no-vowels 不使用任何元音字母,以防止生成下流的词语

生成 10 个 32 位的高强度密码:

3. 使用 GPG 来生成一个高强度密码

GPG (GnuPG 或 GNU Privacy Guard) 是一个自由开源的命令行程序,可以用于替代赛门铁克的 PGP 加密软件。在类 Unix 操作系统、Microsoft Windows 和 Android 中都可以获取到它。

要使用 PGP 生成 1 个长度为 14 个字符的高强度密码,请在终端中运行下面的命令:

gpg --gen-random --armor 1 14

输出样例:

uBhvTL7FLM1S6XQuFFGUcjSx1duyFLXtErxeOUMSZxE=

上面的命令将生成一个安全、随机、高强度且基于 base64 编码的密码。

4. 使用SHA算法来加密日期,并输出结果的前32个字符

date +%s |sha256sum |base64 |head -c 32 ;echo

5. 使用内嵌的/dev/urandom,输出结果的前32个字符。

< /dev/urandom tr -dc _A-Z-a-z-0-9 |head -c${1:-32};echo

tr -cd ’[:alnum:]‘ < /dev/urandom | fold -w32 | head -n1;echo

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c32;echo dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev

</dev/urandom tr -dc '0123456789!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c32; echo

LC_CTYPE=C < /dev/urandom tr -dc 0-9-A-Z-a-z-_\!\@\#\$\%\^\&\*\(\)-+=|head -c ${1:-32};echo

6. apg命令

apg是一款开源免费的密码随机生成器,官方网址为http://www.adel.nursat.kz/apg/

安装方式:

dnf install apg

 

参数 功能描述
-M
生成密码的模式
-E
生成密码过程中排除字符串
-r
apply dictionary check against file
-b
-p
paranoid modifier for bloom filter check
-a
1: 随机密码生成模式。  0:可发音的密码生成
-n
包含数字,但是不是每个密码都有
-N
每个密码都必须包含数字
-m
生成密码最小长度,默认为8,实际生成的随机密码长度都可能超过这个值
-x
生成密码最大长度。
-s
包含特殊字符,但是不一定每个都有
-S
每个密码都必须有特殊字符
-c
包含大写字母。
-C
每个密码都必须包含小写字母
-d
 在生成的密码中间不加任何分割符,默认6个密码连成一长串
-l
生成密码的spell
-t
输出密码中可发音字符的发音
-y
输出加密密码
-q
静默模式,不输出告警信息
-h
输出帮助信息
-v
版本信息。

 

7. 使用string命令,它从一个文件中输出可打印的字符串

[root@DiskStation ~]# strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 32 | tr -d '\n'; echo
zFSi9lMfBe6igWotELx0O85sx1hL2ux7

8. 使用 mkpasswd 实用程序生成密码

安装方法

dnf install mkpasswd

[root@DiskStation ~]# mkpasswd password
$y$j9T$0ipgRIK0/P23q.8is58.T.$atAIxSfdpfmGdFLPIUn6XVdLgo8XRh5pYuiND2cFAE4

这个命令在不同的系统上表现得不一样,所以工作方式各异。你也可以通过参数来控制长度等选项,可以查阅 man 手册来探索。

9. 使用md5sum

[root@DiskStation ~]# date +%N%s | md5sum
0460ef56131bc0e5a5626e196a7d2b98 -

路灯

这个人很懒,什么都没留下

文章评论