Хеширование Base64 и подпись Sha256 С#

  • Автор темы Автор темы Salomon1
  • Дата начала Дата начала
  • Теги Теги
    sha256

Salomon1

Client
Регистрация
22.04.2014
Сообщения
36
Реакции
3
Баллы
8
Привет всем. Мне нужно сделать хеширование описанное в этом примере:

Код:
Развернуть Свернуть Копировать
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"

Прошу помочь исправить ошибки, если они конечно есть :)))
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)