--On Thursday, November 09, 2006 7:59 PM -0400 Hans Poo
<[EMAIL PROTECTED]> wrote:
Hi, thank your response:
I prepare the password:
my $digest = md5_base64("foo");
my $result = $ldap->modify(dn=>$dn,
replace=>{'userPassword'=>"{MD5}$digest"});
The expected result is to have {MD5}rL0Y20zC+Fzt72VPzMSk2A as the value
for the userPassword field, but instead i get:
userPassword:: e01ENX1yTDBZMjB6QytGenQ3MlZQek1TazJB
If i base64 decode this password:
perl -MMIME::Base64 -e 'print decode_base64
("e01ENX1yTDBZMjB6QytGenQ3MlZQek1TazJB"), "\n"; '
I get {MD5}rL0Y20zC+Fzt72VPzMSk2A. For instance the password is encoded
twice to base64.
Sorry if i'am not seeing something obvious ?, i've been the whole day
looking in google.
Why are you base64 encoding the value yourself? There is no need for you
to do that. It'll happen automatically when added to the LDAP server.
Basically, you are base64 encoding the word "foo", then then sticking {MD5}
in front of that. Then the LDAP server is base 64 encoding that string
value.
Just remove the
my $digest = md5_base64("foo");
line.
Chance replace to be:
replace=>{'userPassword'=>"{MD5}foo"});
--Quanah
--
Quanah Gibson-Mount
Principal Software Developer
ITS/Shared Application Services
Stanford University
GnuPG Public Key: http://www.stanford.edu/~quanah/pgp.html