用PHP实现LDAP的三种常见加密算法:SHA
、SSHA
、MD5
参考openldap官方提供的加密原理和实现方法:http://www.openldap.org/faq/data/cache/347.html
,这篇博客提供了具体的实现方法:http://blog.csdn.net/moonx/article/details/6408765
实现代码:
/**
* ldap SHA加密算法
* @param [type] $password 加密前字符串
* @return [type] 加密后字符串
*/
function ldap_sha($password)
{
$ldap_passwd = "{SHA}".base64_encode(pack("H*", sha1($password)));
return $ldap_passwd;
}
/**
* ldap SSHA加密算法
* @param [type] $password 加密前字符串
* @return [type] 加密后字符串
*/
function ldap_ssha($password)
{
$salt = "";
for ($i=1; $i<=10; $i++)
{
$salt .= substr('0123456789abcdef',rand(0,15),1);
}
$hash = "{SSHA}" . base64_encode(pack("H*",sha1($password.$salt)).$salt);
return $hash;
}
/**
* ldap MD5加密算法
* @param [type] $password 加密前字符串
* @return [type] 加密后字符串
*/
function ldap_md5($password)
{
$md5 = "{MD5}".base64_encode(pack( 'H*',md5($password)));
return $md5;
}