Я пытаюсь создать хэш HMAC SHA512 с base64, используя секрет secret
и полезную нагрузку foo
. Я не могу заставить код .NET получить правильное значение. Мне интересно, является ли кодирование основной проблемой..Net HMAC и base64 Ошибка кодирования
Код:
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
неверная хэш & base64 результат:
gt9xA96Ngt5F4BxF/mQrXRPGwrR97K/rwAlDHGZcb6Xz0a9Ol46hvekUJmIgc+vqxho0Ye/UZ+CXHHiLyOvbvg==
Ожидаемый хэш & base64 результат:
ODJkZjcxMDNkZThkODJkZTQ1ZTAxYzQ1ZmU2NDJiNWQxM2M2YzJiNDdkZWNhZmViYzAwOTQzMWM2NjVjNmZhNWYzZDFhZjRlOTc4ZWExYmRlOTE0MjY2MjIwNzNlYmVhYzYxYTM0NjFlZmQ0NjdlMDk3MWM3ODhiYzhlYmRiYmU=
Если вы не генерируя результат "ожидаемого", вы должны быть получать его где-то в другом месте. Где это видят? – dana
@dana У меня есть программа node.js и программа php, создающая правильный хэш. – mark