#原文来源:Linux Study 用openssl生成加密的密码文件脚本
#!/bin/bash
#Function:将用户输入的明文密码通过openssl工具转换为加密后的密码并保存为密码文件
#Author:zzjiwang
#Version:1.0
#Date:2017-07-28 16:50
genpass() {
local currentDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
local tmp=$(mktemp ${currentDir}/pass.XXXXXX)
for((i=1;i<=2;i++))
do
echo -n "Enter your password: "
stty -echo
read pass1 < /dev/tty
stty echo
echo
echo -n "Retype your password: "
stty -echo
read pass2 < /dev/tty
stty echo
echo
if [ "${pass1}" != "${pass2}" ];then
echo "Sorry,passwords do not match."
continue
else
break
fi
done
if [ "${pass1}" != "${pass2}" ];then
echo "Failed to generate password file,the two password input is inconsistent,please check."
[ ! -s ${tmp} ] && rm -f ${tmp}
return 1
fi
(umask 077 ;echo "${pass1}" | openssl passwd -1 -salt 34lfper0LEo -stdin > ${tmp})
if [ $? -eq 0 ];then
echo "Generate password file successfuly: ${tmp}"
return 0
else
echo "Generate password file failed, please check."
return 1
fi
}
genpass