0

我有一个使用 SSHA 密码的 OpenLDAP 用户。我想将他的 SSHA 编码密码与 php webform 中指定的密码进行比较。

不幸的是 ldap_compare 只能比较纯文本密码:

$check = ldap_compare($ldapconn, $dn, $ldap_password, $php_webform_password);

有没有办法根据纯文本密码在 PHP 中生成完全相同的 SSHA 密码,以便能够比较 OpenLDAP 中的 SSHA 密码?

或者有什么安全的方法来比较它吗?

我知道 '{SSHA}' 。base64_encode(pack('H*',sha1($php_webform_password))),但是编码所需的盐是随机的,所以我不能用PHP生成相同的。

有什么解决方案吗?我不想在 OpenLDAP 中使用纯文本密码,因为它不安全。

谢谢您的帮助。

4

0 回答 0