2017-10-12 114 views
-5

我在.NET中有這個功能,但我需要在PHP代碼中使用它。 我該怎麼做? 謝謝。如何將此函數轉換爲php?

originalPassword=user+password; 
public static string Encrypt(string originalPassword) 
    { 
string key = "7f9facc418f74439c5e9709832;0ab8a5:OCOdN5Wl,q8SLIQz8i|8agmu¬s13Q7ZXyno/yv.XSN1DsgKq9zi]XrE^gx8vPC^Av8=e/bF4pX1Oe hfqGb#JK~RONkS1wx5w=RE0$DxZSu7evPfshBw7p5Gb&suEkw=RE0DxZSu7e´vPfshBw7p+5GbsuEkw=H1fTWFXfsXo}z0fOd{KTt[IdDG2y6E="; 

SHA512 sha512 = new SHA512CryptoServiceProvider(); 
byte[] inputBytes = (new UnicodeEncoding()).GetBytes(originalPassword + key); 
     byte[] hash = sha512.ComputeHash(inputBytes); 
     return Convert.ToBase64String(hash); 
} 
+2

_「我怎麼能這樣做呢?」 _ - 你搞清楚什麼給定的代碼的各個部分做開始,然後你去_research_如何在PHP中一步一步實現相同。 – CBroe

+0

18年前,當我從Tango進入PHP時,我做了很多事情......有很多探戈功能,我想在PHP中使用equivs,所以我必須研究每個功能,弄清具體情況,組成PHP功能。所以,它是一個漫長的過程......但是你在學習的過程中學到了很多東西! – IncredibleHat

+0

使用PHP哈希? http://php.net/manual/en/function.hash.php –

回答

0

這應該做的伎倆:

<?php 

function hash_data($data) 
{ 
    $data = mb_convert_encoding($data, 'UTF-16LE', 'UTF-8'); 
    $hash = hash('sha512', $data, true); 
    return base64_encode($hash); 
} 

$user = 'admin'; 
$password = 'secret'; 
$key = "7f9facc418f74439c5e9709832;0ab8a5:OCOdN5Wl,q8SLIQz8i|8agmu¬s13Q7ZXyno/yv.XSN1DsgKq9zi]XrE^gx8vPC^Av8=e/bF4pX1Oe hfqGb#JK~RONkS1wx5w=RE0$" . "DxZSu7evPfshBw7p5Gb&suEkw=RE0DxZSu7e´vPfshBw7p+5GbsuEkw=H1fTWFXfsXo}z0fOd{KTt[IdDG2y6E="; 
$data = $user . $password . $key; 

// 6xecArT38JVtGKH2yQs/T6btOUF41vW5ptaPjgrd8hTaZZKnbJed5551LuYV7vR/Dr3Jb873JMvX0je+8XUpxw== 
echo hash_data($data);