我正在用bash编写一个生成LDIF文件(用于用户帐户)的脚本,并通过ldapadd将其加载到LDAP。 问题在于加密CRYPT-SHA-512的密码。我正在使用python。
password=`python3 -c 'import crypt; print(crypt.crypt("$pass", crypt.mksalt(crypt.METHOD_SHA512)))'`
但每次导入LDIF脚本后,我都无法通过Apache Directory Studio(screenshot)验证该密码。
例如,如果我正在加密“xaPa3Ait”脚本返回:
{CRYPT}$6$le2gfSxoFUZD2aqn$mTJby4dsvRGHINkGVacFXido0V3WIZ3mmOod3viIIyoV8sXrQOp4Dk.H8wkOpWUTmQ0XWJ8j9Lpz8No.R/CEJ.
它也无法在Directory studio中验证。
我可以承认,我不是最好的程序员,并且可以有更好的方法来加密密码,因此您的建议将受到高度赞赏。
谢谢!
答案 0 :(得分:0)
我发现使用mkpasswd更容易一些方法,它在Apache Directory Studio中进行密码检查后工作得很好:
密码= mkpasswd -m sha-512 --salt $salt $password
JFR,这里是: 1.盐生成命令(安装pwgen):
salt=`pwgen 50 1 | cut -b 10-25`
2。将密码转换为base64并同时删除出现的空格:
password=$(echo -n "$password" | base64)
password=$(echo $password | tr -d ' ')