2016-06-22 10 views
0

Ich Berechnung eines Hash auf Unix mit den folgenden:SHA256 in C# unter Windows vs. openssl auf Unix

echo -n "Test123" | openssl dgst -binary -sha256 | openssl base64 

Das gibt:

9JKwVu6ULKgdcQq8I2QugjqDhkvHgiqq8bsBtM7PNGc= 

Ich habe folgende C# -Code:

string enc; 
using(SHA256Managed sha = new SHA256Managed()) 
{ 
    enc = Convert.ToBase64String(sha.ComputeHash(Encoding.UTF8.GetBytes("Test123"))); 
} 

Und das gibt:

2bX1jws4GYKTIxhIoUB09Z66PoJZQ+y+hq5R8dnx9I4= 

Ich verstehe nicht, warum diese nicht identisch sind?

+0

Dies ist ein wenig verwirrend. Ihr Titel sagt "SHA512", aber Ihre Beispiele scheinen für SHA256 zu sein. Ihre Ausgaben scheinen auch 32-Byte-Hashes zu sein. – totalfreakingnoob

+0

@totalfreakingnoob Sorry über den Tippfehler im Titel –

+0

Problem ist das gleiche, unabhängig von der Digest Ausgabegröße –

Antwort

0

Ich wusste, dass das etwas Dummes sein musste und es war. Auf der problematischen Box war ich als root angemeldet, also war ich auf einer K-Shell. Von dort behandelt es nicht die echo -n auf die gleiche Weise wie von einer C-Shell. Ich lasse dieses hier, weil ich wahrscheinlich dieses Problem in fünf Jahren wieder haben werde :)

Verwandte Themen