ldapadd 后无法验证 crypt-sha-512 密码

couldn't verify crypt-sha-512 password after ldapadd

我正在 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" 脚本 returns: {CRYPT}$le2gfSxoFUZD2aqn$mTJby4dsvRGHINkGVacFXido0V3WIZ3mmOod3viIIyoV8sXrQOp4Dk.H8wkOpWUTmQ0XWJ8j9Lpz8No.R/CEJ. 而且在Directory studio中也无法验证。

我承认我不是最好的程序员,可能会有更好的密码加密方法,因此非常感谢您的建议。

谢谢!

我发现使用 mkpasswd 的方法更简单一些,在 Apache Directory Studio 中检查密码后效果很好: 密码=mkpasswd -m sha-512 --salt $salt $password

JFR,这里是: 1. salt生成命令(安装pwgen):

salt=`pwgen 50 1 | cut -b 10-25`

2。将密码转换为 base64 并删除同时出现的空格:

password=$(echo -n "$password" | base64)
password=$(echo $password | tr -d ' ')