2013-09-24 3 views
1

Это первый раз, когда я пытаюсь разобраться с кодом на Python. Мой клиент недавно дал мне код Python:Python SHA512encryption с PHP

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\')"`); 

Спасибо.

ответ

0

Использовать 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); 
+0

Спасибо за ваш ответ. Ваш код точно работает. Как я могу заменить «Pa55w0rd!» & 'x88yEvVg' с переменной? – NewPHP

+0

@NewPHP, я обновил код примера. (Используйте операцию ввода строки). Возможно, вам придется скрыться, если строка с паролем/солью содержит цитату ('' '). – falsetru

0

Нужно ли шифровать с помощью python? В зависимости от вашего PHP версии вы могли бы сделать это для PHP> = 5,3:

openssl_digest("Pa55w0rd!"."$6$x88yEvVg", "sha512"); 

и это для PHP 5.2 или 5.1

hash("sha512", "Pa55w0rd!"."$6$x88yEvVg"); 

Это предполагает, что ваше значение соли просто быть сцеплены с значением пароля ,

Смежные вопросы