Проверка Youtube PubSubHubbub hmac sha1 не удаласьC#

Место общения программистов C#
Ответить
Anonymous
 Проверка Youtube PubSubHubbub hmac sha1 не удалась

Сообщение Anonymous »

3 года назад я создал простую подписку на API pubsubhubbub YouTube, чтобы получать уведомления о загрузке нового видео. Это перестало работать несколько месяцев назад, работало до тех пор. Когда я отладил происходящее, я увидел, что подпись hmac не соответствует, из-за чего мой сервер не обрабатывает запрос.

Код: Выделить всё

var checksumHeader = context.Request.Headers["X-Hub-Signature"];
var signature = checksumHeader.ToString().Split('=')[1];
var stream = context.Request.Body;
string body;
using (var reader = new StreamReader(stream, Encoding.UTF8)) {
body = await reader.ReadToEndAsync();
}

var isValid = PubSubSecret.Check(body, signature);
Это мой код, который обрабатывает POST-запрос YouTube. Раньше это работало, но теперь isValid всегда возвращает false.
Метод My Check:

Код: Выделить всё

public static bool Check(string body, string signature) {
using (var hmac = new HMACSHA1(Encoding.UTF8.GetBytes(Secret))) {
var hashBytes = hmac.ComputeHash(Encoding.UTF8.GetBytes(body));
var hash = Convert.ToHexString(hashBytes).ToLowerInvariant();
Console.WriteLine("Sig: " + signature);
Console.WriteLine("Computed Hash " + hash);
return signature.Equals(hash);
}
}
Если я использую диагностический инструмент по адресу https://pubsubhubbub.appspot.com/subscribe?hl=de, я вижу, что YouTube получает правильный секрет, так что это не проблема. Кроме того, этот точный код раньше работал, поэтому мне интересно, что могло измениться, чтобы он перестал работать.
Я надеюсь, что кто-нибудь подскажет мне, что проверять дальше.
Я надеюсь, что кто-нибудь подскажет мне, что делать дальше.
p>
Если я скопирую тело и секрет строки в один из множества онлайн-инструментов Hmac SHA1, я получу тот же хэш, который вычисляет мой код, но не тот, который YouTube отправляет в заголовке.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ion-failed
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»