Вот что мне надо сделать:
От полученной после объединения строки вычисляется хеш-код алгоритмом SHA256 в бинарном представлении с методом HMAС, подписанный защищенным ключом из настроек вашего приложения, и затем кодируется base64 encode.
Вот так я это делаю:
string payload = "some string here";
var hmac = new HMACSHA256("Secret key here");
var hash = hmac.ComputeHash(Encoding.UTF8.GetBytes(payload));
string base64 = Convert.ToBase64String(hash);
Получаю qD9kcZJAm+YhKG7XzbdYYWzjuhcZYHz+04rIRHhp6QE=, а должно быть qD9kcZJAm-YhKG7XzbdYYWzjuhcZYHz-04rIRHhp6QE. То есть они различаются только в минусах и плюсах. Подскажите плиз, где косячу?
Ваше "должно быть" не выглядит как валидная base64 строка, вы уверены, что это оно?
И шарп со мной согласен. https://sharplab.io/#v2:EYLgxg9gTgpgtADwGwBYA0AXEUCuA7AHwAEAmABgFgAoUgRmuoDcBDKAAgBMZIuO2BeNgGEIeRjCgYAdADEoEALYAhZgGcYqAMoYoASzwBzABQAiAI4ARAJwBrMAC0AUgEEFcAJoALANIBxAOwAGgBewBzu7gDqwQBWOJ4O7gASwXBkKFAAkgBKSZ4ADkgAigCiJgCUANxAA
Обсуждают сегодня