【发布时间】:2016-10-24 17:22:17
【问题描述】:
我在 unix 上使用以下内容计算哈希:
echo -n "Test123" | openssl dgst -binary -sha256 | openssl base64
这给出了:
9JKwVu6ULKgdcQq8I2QugjqDhkvHgiqq8bsBtM7PNGc=
我有以下 C# 代码:
string enc;
using(SHA256Managed sha = new SHA256Managed())
{
enc = Convert.ToBase64String(sha.ComputeHash(Encoding.UTF8.GetBytes("Test123")));
}
这给出了:
2bX1jws4GYKTIxhIoUB09Z66PoJZQ+y+hq5R8dnx9I4=
我不明白为什么这些不相同?
【问题讨论】:
-
这有点令人困惑。你的标题是“SHA512”,但你的例子似乎是针对 SHA256 的。您的输出似乎也是一个 32 字节的哈希值。
-
@totalfreakingnoob 抱歉标题中的错字
-
无论摘要输出大小如何,问题都是一样的
-
对我来说,这两个语句都产生 2bX1jws4GYKTIxhIoUB09Z66PoJZQ+y+hq5R8dnx9I4=。
-
我在各种平台和架构(包括 AIX)上尝试了多个 OpenSSL 版本(0.9.8、1.0.1、1.0.2) >) 并产生相同的结果。 AIX 框上的
openssl version -a输出是什么?