[Date Prev][Date Next] [Chronological] [Thread] [Top]

OpenLDAP + MD5 + PHP != Work


Attempting to connect to an OpenLDAP server to authenticate a
user, just want to see if the password the user passes is the stored
password if true. I can get the LDAP connection to connect to the
server, but unless I switch the LDAP server to use only clear I
continually get a 'Invalid Credentials' error (passwords dont match).
I am using LDAP MD5 to hash passwords on the server. If I take and
echo out the password the routine below is using and compare it to the
password on the server they match exactly?! Even if I include "{MD5}"
at the front it still always gives me "Invalid Credentials".

Here is an example of the code I am using to check the password:

function CheckPassword($username,$password){
 $dn = "uid=" . $username . ",ou=People,dc=<domain>,dc=net";
 $pw = trim(base64_encode(pack("H*",md5($password))));

 $ldapconn = ldap_connect("ldaps://<server_address>/") or die("Could
not connect to LDAP server!");

 if ($ldapconn) {
         $ldapbind = ldap_bind($ldapconn,$dn,$pw);
         if ($ldapbind) {
                 return true;

I am using OpenLDAP v2.1.30 and PHP 4.3.8, for what its worth I am
using Gentoo and my make flags include "ldap".

Thanks for any pointers.