Ich versuche, eine Base64-codierte HMAC SHA512-Hash mit einem Geheimnis von secret
und einer Nutzlast von foo
zu erstellen. Ich kann meinen .NET-Code nicht den richtigen Wert erzeugen lassen. Ich frage mich, ob die Codierung das zugrunde liegende Problem ist..Net HMAC und base64 Codierung Problem
Code:
UTF8Encoding encoding = new UTF8Encoding();
HMACSHA512 hmac = new HMACSHA512(encoding.GetBytes("secret")); // init the HMAC hash with "secret" as a byte array
byte[] hash = hmac.ComputeHash(encoding.GetBytes("foo")); // hash the payload
String result = Convert.ToBase64String(hash); // Base64 encode the payload
Der falsche Hash & base64 Ergebnis:
gt9xA96Ngt5F4BxF/mQrXRPGwrR97K/rwAlDHGZcb6Xz0a9Ol46hvekUJmIgc+vqxho0Ye/UZ+CXHHiLyOvbvg==
Die erwarteten Hash & base64 führen:
ODJkZjcxMDNkZThkODJkZTQ1ZTAxYzQ1ZmU2NDJiNWQxM2M2YzJiNDdkZWNhZmViYzAwOTQzMWM2NjVjNmZhNWYzZDFhZjRlOTc4ZWExYmRlOTE0MjY2MjIwNzNlYmVhYzYxYTM0NjFlZmQ0NjdlMDk3MWM3ODhiYzhlYmRiYmU=
Wenn Sie die "erwartete" Ergebnis nicht zu erzeugen sind, müssen Sie es von woanders bekommen. Wo sehen Sie das? – dana
@dana Ich habe ein Programm node.js und ein PHP-Programm, das den richtigen Hash erzeugt. – mark