LDAP密码是否使用PHP修改扩展操作?

LDAP密码是否使用PHP修改扩展操作?,php,ldap,Php,Ldap,使用PHP,是否可以执行中指定的LDAP密码修改扩展操作?我正在使用的LDAP目录中的密码散列方案可能会定期更改,因此我的理解是,我不能根据特定方案散列新密码,例如,{SHA},我需要使用扩展操作,而让目录进行散列。对吗?的帮助页面表明这是可能的,但我肯定在web上找不到任何示例代码。也许我只是失去了我的谷歌浏览器。TIA如果您正在处理您这边的密码加密,那么是的,您可以将其哈希到您想要的加密方法 对于MD5: $pass_ldap='{MD5}'。base64_编码(pack('H*',md5(

使用PHP,是否可以执行中指定的LDAP密码修改扩展操作?我正在使用的LDAP目录中的密码散列方案可能会定期更改,因此我的理解是,我不能根据特定方案散列新密码,例如,{SHA},我需要使用扩展操作,而让目录进行散列。对吗?的帮助页面表明这是可能的,但我肯定在web上找不到任何示例代码。也许我只是失去了我的谷歌浏览器。TIA

如果您正在处理您这边的密码加密,那么是的,您可以将其哈希到您想要的加密方法

对于MD5: $pass_ldap='{MD5}'。base64_编码(pack('H*',md5($pass))

对于SHA-1: $pass_ldap='{SHA}'。base64_编码(pack('H*',sha1($pass))

然后,您将使用更新现有用户密码或使用加密密码添加新用户


我已经这样做了,我认为LDAP服务器使用“{}”值来确定正在使用的格式。

LDAP客户端决不能将预编码的密码传输到目录服务器-密码必须始终通过安全连接以明文形式传输,因为:,专业质量目录服务器只能在显示明文密码时执行密码质量检查和密码历史记录检查


如果PHP支持扩展操作和扩展响应,则支持密码修改扩展操作(需要现有密码,如果没有提供新密码,则可以生成密码)。我不是PHP专家,但我相信set_选项可以用于控件(附加到操作),但我不知道PHP是否支持LDAP扩展操作。

对于遇到这个问题的人来说:在PHP>7.0中,确实可以执行LDAP扩展操作。有关PHP中ExOps的一般信息,请参阅

还有一个专门用于密码更改操作的功能(也取自):

ldap\u exop\u passwd($ds,“uid=youruser,ou=People,dc=example,dc=com”,“oldpasswd”,“secureNewPassword”);

其中,
$ds
是LDAP链接标识符,由
LDAP\u connect()

-1返回。没有答案。没有解决扩展操作要求。对,我没有处理密码散列。我相信目录需要这样做,因为散列方法可能会随着时间的推移而变化。具体来说,例如,OpenLDAP可以将明文传递给密码检查器,如cracklib。