我正在尝试创建一个工具,使用QuickXorHash算法验证上传到OneDrive for Business的文件,他们在此提供了一个示例:https://docs.microsoft.com/en-us/onedrive/developer/code-snippets/quickxorhash
我遇到的问题是,在比较完全相同的文件时,我使用其代码得到的哈希值与OneDrive返回的json文件的哈希结果不匹配。
由于Microsoft没有提供有关如何使用示例代码的文档,因此我必须做出假设,因此我可能会错误地使用它。有没有人对此有任何见解?
答案 0 :(得分:0)
我发现了这个问题。问题在于我将散列字节数组转换为字符串的方式。我最初在网上找到的代码如下:
int i;
StringBuilder outPut = new StringBuilder(byteArray.Length);
for (i = 0; i < byteArray.Length; i++)
{
outPut.Append(byteArray[i].ToString("x2"));
}
return outPut.ToString();
但是,在做了一些更多的研究之后,我遇到了转换数组的正确方法,这更简单:
return Convert.ToBase64String(byteArray);
这会导致哈希值的字符串表示形式与OneDrive上的内容匹配。