Шифрование 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");

Это предполагает, что ваше солт-значение просто объединяется с вашим паролем.

Другие вопросы по тегам