我正在使用散列来加密和解密我发送给cass构造的密码。所示例如下:安全连接到LDAP服务器
public static function HashPassword ($Password){
$salt = self::$Salt;
return trim
(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $Password, MCRYPT_MODE_ECB, mcrypt_create_iv(
mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}//Get hashed Password
然后解密这是一个protected static function
protected static function DecryptPassword($Password){
$salt = self::$Salt;
return trim
(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $salt,base64_decode($Password), MCRYPT_MODE_ECB, mcrypt_create_iv(
mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
} // Decrypt the password
我然后调用通过连接:
$Connection = LDAP::Connect('LDAPSERVER','LDAPLOGIN','onVidHn5r4WNyxzlDHD8TvUY9AjyiHg+ZC5PoOhIXkU=');
为了安全起见,我已经implimented一个虚拟密码并隐藏我的服务器凭据。
的连接功能:
public static function Connect($Host,$Username,$Password){
self::$Host = $Host;
self::$Admin = $Username;
//Assign to global variables to be used throughout this framework
$Password = self::DecryptPassword($Password);
self::$Password = $Password; // Assign the decrypted password
$LDAPServer = ldap_connect($Host);
$Connect = ldap_bind($LDAPServer,$Username,$Password);
if (!$Connect){
die ("Cannot Connect To LDAP Server");
}
}
我的总的问题是,这是安全与秘密盐我的API传输口令的有效方法是什么?
这对我倾向于不输入密码以纯文本:
ldap_bind('host','[email protected]','PlainTextPassword');
以上是一个例子,它给我的偏好是我不能接受的。
所以这是一个有效的方法来安全地连接到我的LDAP服务器使用TCP协议?
虽然这个问题的长相,我可以证实,我可以 成功地连接到我的LDAP服务器提供正确的凭据 输入;所以这不是问题。我很好地从安全 方面问,没有我的安全知识,我不希望妥协 数据或服务器以任何形状或形式,因此,为什么这是在 生产阶段,只有一个用户可以访问是我自己。
为什么你不想使用LDAP over SSL? – Michael
@Michael我们没有任何形式的SSL证书来执行此操作 –
它是您自己的LDAP(您的产品部署的一部分)吗?在这种情况下,您可以创建一个自签名证书。 – Michael