簡體   English   中英

在C#中等效的PHP sha1

[英]equivalent PHP sha1 in C#

我試圖找出如何在php和C#中獲得相同的結果。 我在C#中有以下代碼:

string date_server = "201311060930|aabbcc@test.com|test";
SHA1 sha_1 = new SHA1CryptoServiceProvider();
byte[] array = Encoding.ASCII.GetBytes(date_server);
array = sha_1.ComputeHash(array);

結果是:2201676219018622422190124192121212501517223223823286232147

所以我想在PHP中獲得相同的結果:

碼:

$finalString = "201311060930|aabbcc@test.com|test";
$a = utf8_encode($finalString);
$b = unpack('C*', $a); 
$string = implode($b);
$sHash = sha1($string);

但我無法獲得相同的結果:3f24039aeb68e306f93161a9e9df2c44e7e1ce15

謝謝

只需運行您的C#代碼,結果應該是

array = {68,176,83,152,44,38,107,201,112,139,17,80,242,94,158,181,136,198,98,193}

我不知道2201676219018622422190124192121212501517223823286232147來源

如果第二個參數為true, sha1將返回原始結果,您可以通過unpack將其轉換為array (在C#中為byte[]

$finalString = "201311060930|aabbcc@test.com|test";
$sHash = sha1($finalString, true);
echo join(',',unpack('C*', $sHash));

並且輸出與C#相同

68,176,83,152,44,38,107,201,112,139,17,80,242,94,158,181,136,198,98,193

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM