Я подключаюсь к MS SQL Server 2014 через PHP и sql_srv:
<?php
$serverName = "SQLEXPRESS";
$connectionInfo = array( "Database"=>"TDB", "UID"=>"TEST", "PWD"=>"1234");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
?>
Как видите, пароль хранится просто в виде простого текста. Поэтому, если кто-то получит доступ к php-файлу с этой информацией о соединении, он получит root-доступ к моей БД. Как я могу зашифровать это?
Я пробовал что-то вроде этого:
$connectionInfo = array( "Database"=>"TDB", "UID"=>"TEST", "PWD"=>MD5("1234"));
или же
$connectionInfo = array( "Database"=>"TDB", "UID"=>"TEST", "PWD"=>MD5('1234'));
или же
$connectionInfo = array( "Database"=>"TDB", "UID"=>"TEST", "PWD"=>MD5(1234));
или же
$connectionInfo = array( "Database"=>"TDB", "UID"=>"TEST", "PWD"=>"MD5(1234))";
и т.д., но всегда получал ошибку аутентификации … может быть потому
Как я могу зашифровать пароль в поле «PWD», чтобы сохранить его в файле сведений о подключении? Спасибо!
ОБНОВЛЕНО:
Я понял, что даже если я напишу что-то вроде «PWD» => MD5 («1234»), я отправлю его в MD5, но все равно сохраню его в виде обычного текста в моем файле конфигурации, ROFL!
Поэтому я думаю, что мне нужно что-то вроде этого:
$ connectionInfo = array («База данных» => «TDB», «UID» => «TEST», «PWD» => «81dc9bdb52d04dc20036dbd8313ed055»);
где 81dc9bdb52d04dc20036dbd8313ed055 — MD5-хэш пароля «1234»
Задача ещё не решена.
Других решений пока нет …