2013-09-24 78 views
1

這是我第一次嘗試處理Python代碼。我的客戶最近給了我一個python代碼:Python SHA512與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

使用popenproc_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"); 

這是假設你的鹽值只是被串聯起來您的密碼值。