Почему HMAC может аутентифицировать сообщение, а обычный дайджест SHA-256 без ключа — нет?
HMAC использует общий секретный ключ, поэтому злоумышленник без этого ключа не может создать ожидаемый код для изменённого сообщения
SHA-256 всегда выдаёт один и тот же дайджест, даже если сообщение изменилось
HMAC шифрует сообщение, поэтому прочитать его может только получатель
HMAC безопасен, потому что получатель хранит алгоритм хеширования в секрете