bash 脚本 密码
我需要定期提供新密码,其中一些密码比其他密码更安全。 当我不得不创建一个新的登录名时,我的脑子似乎常常一片空白,这个简短的Bash脚本填补了这一空白。 完全披露:我发现此脚本的大多数内容发布在某个地方,并对它进行了较小的修改。
#!/usr/bin/env sh
echo
'Generating 12-character passwords'
for
(
(
n =
0 ;n
<
12 ;n++
)
)
do
dd
if =
/ dev
/ urandom
count =
1
2
>
/ dev
/ null
| uuencode
-m -
|
sed
-ne 2p
|
cut
-c-12
done
我不知道它如何工作的所有细节,但是我做了一些研究和实验。 脚本的“肉”以do dd开头。 您可能已经看到dd用来将一个磁盘复制到另一个磁盘,但是在这种情况下,它用来生成一个带dev / urandom的随机字符块。 来自dd的反馈消息被剥离,然后将字符传递到uuencode , uuencode的工作是转换字符,以便所有字符都可打印(即,没有控制字符 )。
可以通过安装sharutils软件包来获取uuencode命令。
sed的工作似乎需要进一步转换,以便字母混合使用大写和小写字母。 最后, 将片段切成12个字符,以12个字符的密码结尾。 for循环运行12次,因此您将获得12个密码。
Generating 12-character passwords
8WMKHeXeYsND
X+V3jWOuBWwp
fSk6inI+LfYP
hIPndcBOSh7m
bb/w9mx8OlHv
hdIOibUaMt3Y
wl//CobIG5bR
dih0qQQMJiXw
BIN2QfNA4jCe
DF0c8Auz1qL4
RM8MMq/D8C8H
rZIG5hbghcMy
此示例输出显示了相当不错的字符。 要注意的一件事是,唯一的非字母数字字符是/和+ 。
没有理由按原样使用这些字词; 您可以根据需要添加或修改字符。 我通常使用八个字符的密码。 有些地方要求密码具有特定的元素,例如至少一个小写字母,一个大写字母,一个数字和一个符号。
如果我不喜欢任何密码,我将再次运行该脚本以生成另一个12。有人可能会评论说dev / urandom仅生成伪随机数,但是此脚本的确比我在我的笔记本上做的更好。拥有。
翻译自: https://opensource.com/article/19/11/random-passwords-bash-script
bash 脚本 密码