我正在嘗試使用secret
的密鑰和foo
的有效負載創建base64編碼的HMAC SHA512哈希。我無法讓我的.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