首页 > 解决方案 > OpenSSL 1.0.2h 在不同的 Windows 版本上给出不同的 SHA256 值?

问题描述

这怎么可能?我写了一个非常简单的测试来演示它:

vector<char> hash(SHA256_DIGEST_LENGTH);
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", strlen("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"));
SHA256_Final(reinterpret_cast<unsigned char *>(hash.data()), &sha256);

在 Windows 7 x64 上,哈希值为cf5b16a7 78af8380 036ce59e 7b049237 0b249b11 e8f07a51 afac4503 7afee9d1. 这是正确的。在 Windows 10 x64 Corporate 上,哈希值是23d7f2dc 23d7f2dc e9af6f64 e9af6f64 5542bb78 23d7f2dc e8e3a3d6 e9af6f64!!! 为什么 OpenSSL 在 Windows 10 上给出不同(和错误)的哈希版本?

标签: c++windowsopenssl

解决方案


推荐阅读