Linux-ldap密码修改程序,如何加密ssha
我想做一个ldap密码修改程序,但是不知道如何把密码加密成ssha格式并写入ldap中,求解
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我想做一个ldap密码修改程序,但是不知道如何把密码加密成ssha格式并写入ldap中,求解
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
ssha加密格式:
function ssha_encode($text) {
for ($i=1; $i<=10; $i++) {
$salt .= substr('0123456789abcdef',rand(0,15),1);
}
$hash = "{SSHA}" . base64_encode(pack("H*",sha1($text.$salt)).$salt);
return $hash;
}
Ladp密码格式参见:RFC2307
你可以看看用PHP实现SSHA加密和LDAP密码验证 这篇文章。
LDAP中SHA,SSHA,MD5加密方法经过了特殊处理
SHA加密方法:
/**
* SHA加密
* @param $password 需要加密的字符串
* @return 返回加密号的字符串
* */
public function ldap_sha($password)
{
$ldap_passwd = "{SHA}".base64_encode(pack("H*", sha1($password)));
return $ldap_passwd;
}
SSHA加密方法:
/**
* SSHA加密算法
* @param $password 需要加密的字符串
* @return 返回加密号的字符串
* */
public 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;
}
MD5加密方法:
/**
* MD5加密
* @param $password 需要加密的字符串
* @return 返回加密号的字符串
* */
public function ldap_md5($password)
{
$md5 = "{MD5}".base64_encode(pack( 'H*',md5($password)));
return $md5;
}