将文件作为缓冲区和bytearray放置不产生相同的哈希(xxhash)

发布于 2025-02-11 03:40:39 字数 1334 浏览 0 评论 0 原文

我有一个 c#脚本在字节数组中读取文件,并使用 xxhash c#算法(非限制性哈希)类似:

 string p = "C:\\Users\\abc\\Documents\\bow.png";
 x = hash(File.ReadAllBytes(p), 10);
  private uint hash(byte[] data , int length, uint seed=0)
        {
           return  xxHash32.ComputeHash(data, length, seed);
        }

我想使用 expressjs 服务器中产生相同的哈希 。 /package/xxhash“ rel =“ nofollow noreferrer”> xxhash js js中的库,但是我没有相同的哈希。这就是我在做的事情:

var XXHash = require('xxhash');
var fs = require('fs');

function getByteArray(filePath){
  let fileData = fs.readFileSync(filePath).toString('hex');
  let result = []
  for (var i = 0; i < fileData.length; i+=2)
    result.push('0x'+fileData[i]+''+fileData[i+1])
  return result;
}

file = Buffer.from(getByteArray( __dirname + "/Files/nfts/bow.png" ))
const uint32array = new Uint32Array(file);
var result = XXHash.hash(uint32array, 0);

我想问题是在C#脚本中,我使用的是字节数组,但是在Nodejs中,我使用了 buffer 。您知道如何解决吗?

I have a C# script that reads a file in byte array and hashes it in 32 bits using xxhash c# algorithm (non-cryptographically hash) like this :

 string p = "C:\\Users\\abc\\Documents\\bow.png";
 x = hash(File.ReadAllBytes(p), 10);
  private uint hash(byte[] data , int length, uint seed=0)
        {
           return  xxHash32.ComputeHash(data, length, seed);
        }

and i want to produce the same hash in my expressjs server using xxhash JS library in js however I don't get the same hash. this is what I'm doing:

var XXHash = require('xxhash');
var fs = require('fs');

function getByteArray(filePath){
  let fileData = fs.readFileSync(filePath).toString('hex');
  let result = []
  for (var i = 0; i < fileData.length; i+=2)
    result.push('0x'+fileData[i]+''+fileData[i+1])
  return result;
}

file = Buffer.from(getByteArray( __dirname + "/Files/nfts/bow.png" ))
const uint32array = new Uint32Array(file);
var result = XXHash.hash(uint32array, 0);

I guess the problem is that in the c# script I'm using a byte array but in the nodejs I'm using a buffer. do you have any idea how to get around that ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文