C# Другой результат с использованием HashAlgorithmProvider и SHA.ComputeHash - PullRequest
1 голос
/ 24 января 2020

Я пытаюсь сравнить две контрольные суммы SHA512, одну из приложения UWP, а другую из стандартного Windows exe.

Код UWP:

        string fileContent = File.ReadAllText(file.Path);

        IBuffer buffUtf8Msg = CryptographicBuffer.ConvertStringToBinary(fileContent, BinaryStringEncoding.Utf8);
        HashAlgorithmProvider objAlgProv = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha512);
        IBuffer buffHash = objAlgProv.HashData(buffUtf8Msg);

        String strHashBase64 = CryptographicBuffer.EncodeToBase64String(buffHash);

        return strHashBase64;

Windows exe код:

    using (SHA512 SHA = SHA512Managed.Create())
    {
        using (FileStream fileStream = System.IO.File.OpenRead(filePath))
        {
            byte[] fileBytes = new byte[fileStream.Length];
            return Convert.ToBase64String(SHA.ComputeHash(fileBytes));               
        }
    }

Когда я сравниваю два результата, они разные.

Если у кого-то есть объяснение, оно было бы очень полезно.

...