Шифрование Python SHA512 с помощью PHP
Это первый раз, когда я пытаюсь разобраться с кодом Python. Мой клиент недавно дал мне код Python:
python -c 'import crypt; print crypt.crypt("Pa55w0rd!", "$6$x88yEvVg")'
Который используется для шифрования пароля, в приведенном выше коде.
Пароль Pa55w0rd! и значение соли составляет x88yEvVg. Могу ли я выполнить приведенный выше код в PHP? Я пытался сделать это:
echo exec(`python -c "import crypt;print crypt.crypt('Pa55w0rd!', '\$6\$x88yEvVg\')"`);
Благодарю.
2 ответа
Решение
Использование popen
или же proc_open
,
Например:
$password = 'Pa55w0rd!';
$salt = '$6$x88yEvVg';
$handle = popen('python -c \'import crypt; print crypt.crypt("' . $password . '", "' . $salt . '")\'', 'r');
$text = fread($handle, 100);
echo $text;
pclose($handle);
Вам абсолютно необходимо шифровать с помощью Python? В зависимости от вашей версии PHP вы можете сделать это для PHP >= 5.3:
openssl_digest("Pa55w0rd!"."$6$x88yEvVg", "sha512");
и это для PHP 5.2 или 5.1
hash("sha512", "Pa55w0rd!"."$6$x88yEvVg");
Это предполагает, что ваше солт-значение просто объединяется с вашим паролем.