我正在使用散列來加密和解密我發送給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