- Регистрация
- 22.04.2014
- Сообщения
- 36
- Реакции
- 3
- Баллы
- 8
Привет всем. Мне нужно сделать хеширование описанное в этом примере:
Немного разобравшись и почитав на других форумах, я создал вот такой код.
Я так понимаю, что нужно строку закодировать в Base64 и её подписать секретным ключом при помощи sha256.
У меня этот код работает и что-то там себе хэшырует.
Но походу он неправильно работает, так как сервер с которым я соединяюсь, пишет мне - "Signature verification failed"
Прошу помочь исправить ошибки, если они конечно есть
))
Код:
String queryString;
//splice string for signing
String strForSign = endpoint + "/" + nonce +"/" + queryString;
//Make a base64 encoding of the completed string
String signatureStr = Base64.getEncoder().encodeToString(strForSign.getBytes("UTF-8"));
Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKeySpec = new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256");
sha256_HMAC.init(secretKeySpec);
//KC-API-SIGNATURE in header
String signatureResult = Hex.encodeHexString(sha256_HMAC.doFinal(signatureStr.getBytes("UTF-8")));
Немного разобравшись и почитав на других форумах, я создал вот такой код.
Код:
var ednpoint = project.Variables["kodiruem"].Value;
var SecretKey = project.Variables["Api_secret"].Value;
var signatureString = Convert.ToBase64String(Encoding.UTF8.GetBytes(ednpoint));
byte[] secretKeyBytes = Encoding.UTF8.GetBytes(SecretKey);
byte[] inputBytes = Encoding.UTF8.GetBytes(signatureString);
using (var hmac = new HMACSHA256(secretKeyBytes))
{
byte[] hashValue = hmac.ComputeHash(inputBytes);
return BitConverter.ToString(hashValue).Replace("-", "").ToLower();
}
Я так понимаю, что нужно строку закодировать в Base64 и её подписать секретным ключом при помощи sha256.
У меня этот код работает и что-то там себе хэшырует.
Но походу он неправильно работает, так как сервер с которым я соединяюсь, пишет мне - "Signature verification failed"
Прошу помочь исправить ошибки, если они конечно есть
))

