在ldapadd

时间:2017-09-15 07:40:29

标签: python bash openldap sha512 apache-directory

我正在用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中验证。

我可以承认,我不是最好的程序员,并且可以有更好的方法来加密密码,因此您的建议将受到高度赞赏。

谢谢!

1 个答案:

答案 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 ' ')