当前位置:  开发笔记 > 编程语言 > 正文

php和c#中的hmac_sha256不同

如何解决《php和c#中的hmac_sha256不同》经验,为你挑选了1个好方法。

这是我的PHP代码:

hash_hmac( "sha256", utf8_encode( $filename ), utf8_encode( $password ) );

这是我的C#代码:

var hmacsha256 = new HMACSHA256( Encoding.UTF8.GetBytes( password ) );
hmacsha256.ComputeHash( Encoding.UTF8.GetBytes( filename ) );

不幸的是,两个结果都不同 任何人都可以给我一个提示吗?



1> Ólafur Waage..:

我的C#不是最好的,但我让它工作,你需要做的是将你的字节数组结果转换为十六进制.

PHP

$hash = hash_hmac( "sha256", utf8_encode("Filename"), utf8_encode("Password"));
echo $hash;
// 5fe2ae06ff9828b33fe304545289a3f590bfd948ca9ab731c980379992ef41f1

C#

string password = "Password";
string filename = "Filename";

var hmacsha256 = new HMACSHA256(Encoding.UTF8.GetBytes(password));
hmacsha256.ComputeHash(Encoding.UTF8.GetBytes(filename));

foreach(byte test in hmacsha256.Hash)
{
    Console.Write(test.ToString("X2"));
}
// 5FE2AE06FF9828B33FE304545289A3F590BFD948CA9AB731C980379992EF41F1

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有