在Bash中创建密码

时间:2017-06-05 20:07:19

标签: bash passwords

我目前正在生成一个密码,即日期的哈希值。我希望通过添加一些大写,小写,数字和特殊字符来增加这个生成的密码的安全性,所有这些都是10个字符的最小长度。

我目前的情况如下。如您所见,它将输出分配给我的PASSWORD变量。

PASSWORD=$(date +%s | sha256sum | base64 | head -c 15)

我不确定我是否可以内联,或者,如果我需要在我的bash脚本中创建一个函数来适应?这甚至可能吗?

非常感谢提前。

2 个答案:

答案 0 :(得分:6)

trhead

password=$(tr -dc 'A-Za-z0-9!?%=' < /dev/urandom | head -c 10)

echo "$password"

输出(示例):

k?lmyif6aE

tr从Linux的特殊随机设备/dev/urandom通过stdin读取字节,并删除AZa到{{z的所有字节/字符1}},09!?%=tr通过stdout将其输出发送到head的标准输入。 head在10个字节后减少输出。

答案 1 :(得分:0)

或者您可以只使用 openSSL rand 来生成密码:

PASSWORD=$(openssl rand -base64 10)

例如,上面的命令将在 base64 中生成 10 个字符的字符串。