2012-10-22 44 views
-4

所以我有一個網站,我的遊戲鹽和MD5在C#

這是我使用的PHP的發力。

$Login = strtolower(trim($Login)); 
$Pass = strtolower(trim($Pass)); 
$Repass = strtolower(trim($Repass)); 

$Salt = $Login.$Pass; 
$Salt = md5($Salt); 
$Salt = "0x".$Salt; 

但現在我面對的是我似乎無法制定出一個問題。我需要能夠做到通過C#的WinForms這種加密對客戶端啓動(註冊,玩遊戲等等等等)

對我的生活中,我無法弄清楚如何使相同的二進制,因爲它使在PHP。

我曾嘗試加載,但只是不能破解它。

非常感謝,如果你能幫助

+2

這並不似乎是一個正確使用‘鹽’或‘加密’的期待。 – 2012-10-22 17:05:07

+3

[我Google和在三秒鐘內,我發現一個答案(http://www.spiration.co.uk/post/1203/MD5-in-C%23---works-like-php-md5() - 例)。 –

+0

除非您告訴它,否則md5()不會返回二進制文件。它返回的MD5哈希 –

回答

2

雖然你的示例代碼混淆了實際的問題,我想我對您的實際問題的解決方案。

我已經與md5() medthod同樣的問題,將一些PHP代碼到C#而回。這是我想出的:

private static string CalculateChecksum(string inputString) 
{ 
    var md5 = new MD5CryptoServiceProvider(); 
    var hashbytes = md5.ComputeHash(Encoding.UTF8.GetBytes(inputString)); 
    var hashstring = ""; 
    foreach(var hashbyte in hashbytes) 
     hashstring += hashbyte.ToString("x2"); 

    return hashstring; 
} 

可能有一個更簡潔的解決方案,但有一個適合我的工作,當時我匆忙。

無論如何,它給你的字符串像A48EDF06 ...,你會從phpmd5()