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
-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 不使用任何元音字母,以防止生成下流的词语
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 -
文章评论