如何在看起来像这样的$ 5 $ rounds = 5000 $ / mLhDmcPoT3lHt4T $ IIHC08bghQ0me8m.kMFxOMxfz / g1CW1TglF3WE9zVpA的mysql中创建密码?
我有一个Linux Shell脚本,该脚本使用md5生成密码。 md5函数位于mysql语句中,该语句更新mysql数据库。我现在需要生成dovecot 2.2.27(c0f36b0)可以验证的密码。该脚本要求输入用户名,然后使用新密码更新数据库。 Dovecot使用此数据库验证pop3和imap访问。我尝试用sha2替换md5函数,它确实会生成一个密码并更新数据库,但是插入的密码不包含$ 5 $ rounds业务。
这是鸽舍配置数据:
default_pass_scheme = SHA256-CRYPT
这是代码段: modPass(){
echo ""
echo "Modifying email ${EMAIL}."
getInput "Enter new password: " pw
NEWPASS="${ANSWER}"
DOMAINID=`${DBCON} "SELECT id FROM ${DATABASE}.virtual_users WHERE email = '${EMAIL}';"`
${DBCON} "USE ${DATABASE}; UPDATE virtual_users SET password = SHA2('${NEWPASS}', 256) WHERE virtual_users.id = '${DOMAINID}';"
echo ""
echo "Password for account ${EMAIL} modified"
让我知道是否需要提供更多详细信息。预先感谢您的协助。
答案 0 :(得分:0)
由于在我必须上线电子邮件服务器之前,stackoverflow阅读器没有响应,因此我将所有密码类型更改为md5。 md5不是最好的解决方案,但是根据stackoverflow看来,它是唯一的解决方案。