0

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

我可以承认我不是最好的程序员,可能有更好的方法来加密密码,所以你的建议将不胜感激。

谢谢!

4

1 回答 1

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 ' ')
于 2017-09-19T11:34:01.997 回答