Как мне зашифровать мои данные в приложении PHP? - PullRequest
2 голосов
/ 26 июля 2011

Я пытался использовать Paypal PHP SDK и заметил предупреждение, в котором говорится, что я должен зашифровать свое имя пользователя и пароль API для использования в производственных средах. Я согласен с этим утверждением, но мне интересно, как мне поступить так. В настоящее время я понятия не имею.

Вот что говорится в предупреждении, только для записи:

Не встраивайте учетные данные в виде открытого текста в код приложения. Делать это небезопасно и против лучших практик. Ваши учетные данные API должны быть обрабатываются надежно. Пожалуйста, рассмотрите возможность шифрования их для использования в любом производственная среда, и убедитесь, что только уполномоченные лица может просматривать или изменять их.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 26 июля 2011

Как правило, такие учетные данные можно хранить в файле вне веб-корня. Это ограничивает риск, но не избавляет от него полностью.

Если они увидят ваш код (или, что еще хуже, отредактируют его), они все равно смогут получить ваши учетные данные. Шифрование означает, что вам нужен ваш ключ шифрования, который был бы таким же видимым, как и имя пользователя / пароль.

1 голос
/ 26 июля 2011

Сначала установите ключ шифрования:

$key = 'yourpasswordhere';
$string = ' confidential information here '; // note the spaces

Зашифруйте его в записи БД или из другого файла и сохраните только зашифрованную строку в самом файле:

$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
var_dump($encrypted); // "ey7zu5zBqJB0rGtIn5UB1xG03efyCp+KSNR4/GAv14w="

Расшифруйте позже:

$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
var_dump($decrypted); // " confidential information here "
...