我正在使用哈希来加密和解密我发送到 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 服务器,只要输入正确的凭据;所以这不是问题。我只是从安全方面询问,没有我的安全知识,我不希望以任何形式或形式损害数据或服务器,因此为什么这是在生产阶段并且只有我自己的一个用户可以访问。