Linux 常用命令 | pwgen 详解
pwgen
是一个生成密码的小工具,可以通过参数生成满足各种条件的密码,如生成的密码至少要包含一个特殊字符,或生成的密码不要包含数字,或生成长度为 16 的密码等。
安装
在 Ubuntu 操作系统,可以直接通过 apt-get 方式安装:
1 | apt-get install pwgen |
在 CentOS 操作系统,需要先安装 epel-release 软件包后才能使用 yum 方式安装 pwgen。
安装 epel-release:
1 | yum install -y epel-release |
安装 pwgen:
1 | yum install -y pwgen |
用法
1 | pwgen [ 选项 ] [ 密码长度 ] [ 密码数量 ] |
例如,生成 4 个长度为 8 的密码:
1 | pwgen 8 4 |
结果如下:
1 | $ pwgen 8 4 |
pwgen 支持的选项
选项 | 说明 |
---|---|
-c 或 —capitalize | 在密码中至少包含一个大写字母 |
-A 或 —no-capitalize | 不在密码中包含大写字母 |
-n 或 —numerals | 在密码中至少包含一个数字 |
-0 或 —no-numerals | 不在密码中包含数字 |
-y 或 —symbols | 在密码中至少包括一个特殊符号 |
-r |
生成的密码不要包含字符集中任何字符 |
-s 或 —secure | 生成完全随机的密码 |
-B 或 —ambiguous | 不要在密码中包含模棱两可的字符 |
-h 或 —help | 打印帮助信息 |
-H 或 —sha1=path/to/file[#seed] | 使用指定文件的 sha1 哈希值作为(不那么)随机生成器 |
-C | 以列的形式打印生成的密码 |
-1 | 不以列的形式打印生成的密码 |
-v 或 —no-vowels | 不要使用任何元音字母,以避免出现偶然的不友好的单词。 |
示例
1、生成 8 个长度为 16 并且不要包含大写字母的密码:
1 | $ pwgen -A 16 8 |
2、生成 8 个长度为 16 并且不要包含大写字母和数字的密码:
1 | $ pwgen -A0 16 8 |
3、生成 10 个长度为 16 并且不要包含 y, a, b, c 这四个字符的密码:
1 | $ pwgen -r yabc 16 10 |
4、生成 10 个长度为 16 并且不要包含 y, a, b, c 这四个字符和大写字母的密码:
1 | $ pwgen -Ar yabc 16 10 |
注意,字符集需要紧跟在参数 -r
后面,如以下命令会出错:
1 | $ pwgen -rA yabc 16 10 |
5、以文件 /opt/tt230330.log 的 sha1 哈希值作为随机数生成器,生成 2 个长度为 8 的密码:
1 | $ pwgen -H /opt/tt230330.log 8 2 |
6、生成两个长度为 32 并且不包含大写字母和数字、但必须至少包含一个特殊符号的密码:
1 | $ pwgen -Ay0 32 2 |
7、生成两个长度为 32 并且不包含大写字母和数字、但必须至少包含一个特殊符号的密码,不分列的形式打印(即以一列的形式输出):
1 | $ pwgen -Ay01 32 2 |
(END)
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.