【发布时间】:2014-03-04 15:14:39
【问题描述】:
这是我的 PHP 代码:
<?php
$sig_string = "GET&https%3A%2F%2Fapi.pinterest.com%2Fv3%2Fusers%2Farchimede%2Fboards%2F&client_id=987654×tamp=1391761866";
$secret = "123456";
$sig = hash_hmac("sha256", $sig_string, $secret);
echo $sig;
?>
返回(正确)a7918aec50919915f3cefed8622ddbe35448c8f71a54ad115828f07a05930f4c
现在,我想在 C# 中翻译这个函数。代码:
signature_base_string = "GET&https%3A%2F%2Fapi.pinterest.com%2Fv3%2Fusers%2Farchimede%2Fboards%2F&client_id=987654×tamp=1391761866";
signing_key = "123456";
var encoding = new System.Text.ASCIIEncoding();
byte[] keyByte = encoding.GetBytes(signing_key);
byte[] messageBytes = encoding.GetBytes(signature_base_string);
using (var hmacsha256 = new HMACSHA256(keyByte))
{
byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
Response.Write(Convert.ToBase64String(hashmessage));
}
但它会返回p5GK7FCRmRXzzv7YYi3b41RIyPcaVK0RWCjwegWTD0w=
为什么会有两个不同的结果? C# 代码有什么问题?
【问题讨论】: