我正在使用哈希来加密和解密我发送给cass构造的密码。示例如下:
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=');
出于安全考虑,我已经建立了一个虚拟密码并隐藏了我的服务器凭据。
连接功能:
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','user@server','PlainTextPassword');
以上是一个例子,我个人不能接受。
那么这是使用TCP协议安全连接到我的LDAP服务器的有效方法吗?
虽然这个问题的外观,我可以确认我可以 成功连接到我的LDAP服务器,提供正确的凭据 输入;所以这不是问题。我恳请一位保安人员 方面,没有我的安全知识,我不想妥协 无论如何形状或形式的数据或服务器,因此这是为什么 生产阶段,只有一个用户可以访问。
答案 0 :(得分:1)
这完全没有意义,我很害怕。
在建立与服务器的连接方面,这并没有给你任何额外的安全性,因为密码仍然以解密的形式传输到服务器。这样做的唯一方法是在源代码中混淆密码 - 我说“混淆”而不是“加密”,因为解密密码到源文本的所有必要信息也包含在源代码中。
那么这是使用TCP协议安全连接到我的LDAP服务器的有效方法吗?
没有。如果您想要安全连接,则需要使用LDAP over SSL。