C#中的等效PHP sha1

时间:2013-11-06 14:45:23

标签: c# php encryption

我试图找出如何在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);

结果是:2201676219018622422190124192121212501517223823286232147

所以我想在PHP中获得相同的结果:

代码:

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

但我无法获得相同的结果:3f24039aeb68e306f93161a9e9df2c44e7e1ce15

由于

1 个答案:

答案 0 :(得分:0)

只需运行你的c#代码,结果应为

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

我不知道2201676219018622422190124192121212501517223823286232147来自哪里

如果第二个参数为真,

sha1将返回原始结果,您可以通过array

将其转换为byte[](C#中的unpack}
$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