小编sch*_*mla的帖子

SHA256 计算的哈希值似乎有问题

我有以下类,它计算我想要发送到服务器的文件的哈希值。

public class GetHashCode 
    {
        public static string CalculateHash()
        {
            try
            {
                var filePath = "\\\\abc\\abc-fs\\_My-Data\\user\\Documents\\test.jpg";
                var fileStream = File.Open(filePath, FileMode.Open,
                FileAccess.Read, FileShare.ReadWrite);
                var hashProvider = SHA256.Create();
                var buffer = hashProvider.ComputeHash(fileStream);
                return Convert.ToBase64String(buffer);
            }
            catch (Exception err)
            {
                Console.WriteLine(err);
                return null;
            }        
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我通过另一个应用程序将文件发送到服务器时,我可以看到此操作的哈希与我使用上面的代码创建的哈希有点不同:

来自其他应用程序的哈希值(正确的):

R7av4w6Ow3M3z%252bpKPBBpojzvLvyl6aM0Q7q%252bJ%252fDvLPQ%253d
Run Code Online (Sandbox Code Playgroud)

用我的代码生成的哈希:

R7av4w6Ow3M3z+pKPBBpojzvLvyl6aM0Q7q+J/DvLPQ=
Run Code Online (Sandbox Code Playgroud)

所以似乎特殊字符的编码有问题,但我还不知道如何解决这个问题。有人可以帮忙吗?提前致谢!

c# hash sha256

2
推荐指数
1
解决办法
589
查看次数

标签 统计

c# ×1

hash ×1

sha256 ×1