Проверка подписи вебхуков
Проверяйте подписи GitHub, Stripe, Slack, Shopify и Standard Webhooks и узнавайте, почему они не сходятся
Ввод
Хранится только в памяти. Никогда не сохраняется, не записывается в журналы и не отправляется.
По одной строке «Имя: значение» или JSON-объект. Регистр имён не важен.
Обязательные заголовки
X-Hub-Signature-256Нет
Текстовые поля превращают переводы строк CRLF в LF. Если важны точные байты, вставьте тело в Hex или Base64 либо загрузите его из файла.
Вставить исходный HTTP-запрос
Строка запроса, заголовки, пустая строка, затем тело.
Результаты
Подробности
Что проверяет инструмент
Вставьте доставку вебхука (секрет подписи, заголовки и точное исходное тело), чтобы пересчитать подпись по правилам самого провайдера: X-Hub-Signature-256 от GitHub, подписи Slack v0 с меткой времени запроса, HMAC в Base64 от Shopify, подписи Stripe t= и v1= (во время смены секрета может совпасть любая v1), webhook-id, webhook-timestamp и webhook-signature из Standard Webhooks и Svix, а также настраиваемый произвольный HMAC. Действительность подписи и актуальность метки времени показываются отдельно.
Почему проверка не проходит
Подпись покрывает точные байты. Если подпись не совпала, инструмент пробует типичные ошибки и называет первую совпавшую: добавленный или потерянный перевод строки в конце, преобразование CRLF или LF, JSON, разобранный и сериализованный заново, пробелы вокруг секрета, секрет whsec_ без декодирования из Base64 или схема другого провайдера. Отсутствующие заголовки, подписи неверного формата и старые или будущие метки времени получают отдельные замечания.
Точные байты
Проверка всегда использует исходное тело; форматированный просмотр только для отображения. Текстовые поля превращают CRLF в LF, поэтому, если важны точные байты, вставьте тело в Hex или Base64 либо загрузите его из файла. Принимаются тела до 5 MB и секреты до 64 KB.
Конфиденциальность и ограничения
Всё выполняется в вашем браузере с помощью Web Crypto. Секрет хранится только в памяти и никогда не сохраняется, не попадает в URL, журналы и не отправляется; запоминаются только провайдер и допуск. Инструмент не повторяет запросы, не связывается с провайдерами и не проверяет асимметричные подписи, например Standard Webhooks v1a (Ed25519).
