compare_digest не выходит на первом различии
Когда ожидаемая и полученная подписи уже вычислены, остаётся проверить равенство. Обычное сравнение может закончиться на первом различии. Для криптографических значений в стандартной библиотеке есть
Функция избегает досрочного выхода по содержимому. Передавайте аргументы одного типа: bytes-like либо строки только из ASCII, например два результата
В документации есть оговорка: разные длины или ошибка могут теоретически раскрыть сведения о длине и типе входов, но не об их значениях. Поэтому обещать одинаковое время для любых аргументов нельзя. Само сравнение также не вычисляет подпись и не решает, кому разрешён доступ.
Когда ожидаемая и полученная подписи уже вычислены, остаётся проверить равенство. Обычное сравнение может закончиться на первом различии. Для криптографических значений в стандартной библиотеке есть
hmac.compare_digest(expected, received).Функция избегает досрочного выхода по содержимому. Передавайте аргументы одного типа: bytes-like либо строки только из ASCII, например два результата
hexdigest(). Произвольные Unicode-строки и смесь str с bytes сюда не подходят.В документации есть оговорка: разные длины или ошибка могут теоретически раскрыть сведения о длине и типе входов, но не об их значениях. Поэтому обещать одинаковое время для любых аргументов нельзя. Само сравнение также не вычисляет подпись и не решает, кому разрешён доступ.