Buc*_*non 6 php c# hash cryptography hmac
我在PHP中计算相同的哈希比在C#.NET中遇到一些麻烦.
在C#中,我有以下内容:
HMAC hasher = new HMACSHA256(Encoding.UTF8.GetBytes("secret")); //key
byte[] data = hasher.ComputeHash(Encoding.UTF8.GetBytes("2012-10-01T17:48:56")); //timestamp
Convert.ToBase64String(data); //computed token
Run Code Online (Sandbox Code Playgroud)
产生的东西如下:
yBV7ZfAyT1FwO5sGEVd3aPYUfBz9geN6ghK9RO68jwo =
在PHP中,我认为这将以相同的方式计算哈希值:
$hmac = hash_hmac("sha256", "2012-10-01T17:48:56", "secret");
$hmac = base64_encode($hmac);
Run Code Online (Sandbox Code Playgroud)
但是它产生了一个非常不同的,更大的哈希:
YzgxNTdiNjVmMDMyNGY1MTcwM2I5YjA2MTE1Nzc3NjhmNjE0N2MxY2ZkODFlMzdhODIxMmJkNDRlZWJjOGYwYQ ==
您是否尝试过将 hash_hmac 与原始二进制数据输出一起使用?
$hmac = hash_hmac("sha256", "2012-10-01T17:48:56", "secret", true);
$hmac = base64_encode($hmac);
Run Code Online (Sandbox Code Playgroud)
这似乎产生了更像 .NET 的输出:
NASzFnV3Flw5ppkTIja5/aaFELPNIpfQb+kbsXCAm0Q=
Run Code Online (Sandbox Code Playgroud)
就我而言。
| 归档时间: |
|
| 查看次数: |
713 次 |
| 最近记录: |