我希望创建一个Bash脚本,用户可以选择用户名、密码,并通过两次输入来确认密码。如果密码不匹配,应提示用户重新输入。如果密码匹配,则脚本应创建一个密码哈希值;否则一直要求输入,直到正确为止。
到目前为止,我有以下代码,但我不确定这是否是正确的做法。 以下Bash脚本是否存在问题?
到目前为止,我有以下代码,但我不确定这是否是正确的做法。 以下Bash脚本是否存在问题?
# read username
read -p "Username: " username
# read password twice
read -s -p "Password: " password
echo
read -s -p "Password (again): " password2
# check if passwords match and if not ask again
while [ "$password" != "$password2" ];
do
echo
echo "Please try again"
read -s -p "Password: " password
echo
read -s -p "Password (again): " password2
done
# create passwordhash
passwordhash=`openssl passwd -1 $password`
# do something with the user and passwordhash
我找到了一个可以正常工作的解决方案,但我不确定这是否是正确的做法。
”只有这些信息我的评论才有意义。似乎是一个误解。我已经编辑过了并给了你一个赞。 - hek2mglstty -echo
,并在之后使用stty echo
。 - Passufstty
的内容看起来是一个不错的解决方案。然而,我会立即用它的哈希值覆盖$password
,以便尽快将明文密码从内存中清除。 - hek2mgl