PHP实现LDAP中SHA,SSHA,MD5加密方法
来源:互联网 发布:重做系统后数据恢复 编辑:程序博客网 时间:2024/05/24 06:40
前几天因为工作的关系,需要使用PHP模拟LDAP中的SHA,SSHA,MD5的加密方法,本来以为直接使用sh1(),md5()这样的方法就可以实现,可是这样写完了以后发现生成的加密字符串,在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;
}
参考:http://www.xiaolangspace.com/archives/22
- PHP实现LDAP中SHA,SSHA,MD5加密方法
- MD5,SHA加密通用方法
- JAVA中使用MD5加密、sha加密
- 实现MD5和SHA加密的类
- MD5,MD2,SHA加密的实现方式
- MD5与SHA-512加密C#实现
- java 实现各种加密(MD5 ,SHA-1,SHA-256)
- java中MD5和SHA加密
- MD5/SHA 加密处理
- MD5+SHA+BASE64加密
- MD5和SHA加密
- MD5和SHA加密
- 加密之SHA,MD5
- android md5加密和sha-1加密方法
- LDAP-SHA加密与解析
- 在Java中使用MessageDigest实现MD5,SHA-1等加密
- MD5加密与SHA加密
- 用Java实现MD5,SHA-1等加密
- Ext3.2实现Chart 多种,可操作
- Android 获取屏幕高度、标题高度、状态栏高度详解
- 我不要《秋天的童话》
- java 调用bat
- 修复 Grub rescue 模式并启动
- PHP实现LDAP中SHA,SSHA,MD5加密方法
- 短信编码
- java异常分类
- 订餐系统
- Oracle 创建 DBLink 的方法
- 订餐系统
- Linux MySQL 安装
- 自动装箱与可变参数
- AT COMMAND