将C#中的加密与NodeJS匹配-创建哈希SHA256

斯图尔特

我正在尝试将一些C#加密代码移植到NodeJS环境中。

可以在此处查看示例C#代码:https : //dotnetfiddle.net/t0y8yD

    byte[] key = Convert.FromBase64String("loQj47u9A5Vj6slaKmCShd/wg2hS+Mn5mM2s5NT5GzF3um1WsbFan8y7cxDVEai8ETG5hZ+CqPDrRBJ/V0yRFA==");
    Console.WriteLine(BitConverter.ToString(key));

    byte[] data = System.Text.Encoding.UTF8.GetBytes("9644873");
    byte[] mac = null;

    using (System.Security.Cryptography.HMACSHA256 hmac = new System.Security.Cryptography.HMACSHA256(key))
    {
        mac = hmac.ComputeHash(data);
    }

在NodeJS中,我正在使用“ crypto”库来完成相同的工作。

/// key === matches above.  
  var buf = Buffer.from(key, "base64");
  console.log("buff");
  console.log(buf);

  var randomId = 9644873;

  var hmac = crypto.createHash("sha256", buf);
  hmac.update(randomId.toString());

  console.log("hash");
  console.log(hmac.digest());

如果我查看了两者的注销信息,可以看到密钥匹配,则缓冲区值为:

96-84-23-E3-BB-BD-03-95-63-EA-C9-5A-2A-60-92-85-DF-F0-83-68-52-F8-C9-F9-98-CD-AC-E4-D4-F9-1B-31-77-BA-6D-56-B1-B1-5A-9F-CC-BB-73-10-D5-11-A8-BC-11-31-B9-85-9F-82-A8-F0-EB-44-12-7F-57-4C-91-14

但是,返回的哈希值不匹配。我必须在NodeJS的哈希方面做错什么,但是是否发送了相同的值来创建哈希?

jps

代替

var hmac = crypto.createHash("sha256", buf);

你必须使用

var hmac = crypto.createHmac("sha256", buf);

这里

然后,您将获得相同的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何在Java中复制javascript sha256哈希并获得相同的十六进制输出?

来自分类Dev

如何将SHA256哈希从整数转换为字符串然后返回?

来自分类Dev

SHA256的C#签名说明

来自分类Dev

如何在python中对变量进行sha256哈希

来自分类Dev

为什么在C ++和PHP SHA256哈希之间得到不同的结果?

来自分类Dev

Python中的双哈希SHA256

来自分类Dev

目标C和Java中的Sha256哈希

来自分类Dev

C#中的HMAC SHA256哈希计算

来自分类Dev

使用C ++中的键生成HMAC SHA256哈希

来自分类Dev

如何在Groovy 2.4中计算sha256哈希

来自分类Dev

如何将图片转换为Sha256哈希Python

来自分类Dev

原始javascript中的sha256加密

来自分类Dev

无法将sha256哈希插入SQLite3表-NodeJs

来自分类Dev

解密哈希sha256加密,知道了盐

来自分类Dev

sha256哈希函数中三个字节中的两个不同

来自分类Dev

为什么在C ++和PHP SHA256哈希之间得到不同的结果?

来自分类Dev

android中sha256哈希的错误计算

来自分类Dev

Node js与Python中的一种方式sha256哈希之间的比较

来自分类Dev

在C#中从MySQL数据库验证SHA256哈希

来自分类Dev

Python中的双哈希SHA256

来自分类Dev

使用sha256哈希使用AES 128加密对j2me应用程序进行加密/解密

来自分类Dev

c#SHA-256哈希

来自分类Dev

如何在erlang中获取sha256哈希字符串?

来自分类Dev

C ++中的SHA256哈希计算

来自分类Dev

二进制输出在哈希SHA256中不同

来自分类Dev

尝试在Elixir中创建sha256键和哈希(从python代码转换)

来自分类Dev

如何使用 AES 与 sha256 哈希作为密钥加密 ++ 进行加密

来自分类Dev

将 sha256 哈希值存储到相关文件中

来自分类Dev

如何在 Solidity 中解码 SHA256 哈希值并检索数据

Related 相关文章

热门标签

归档