HMAC — это не хэш, это имитовставка. Её, разумеется, можно использовать и как хэш, но основная задача — подтвердить отправителя, когда само сообщение несекретно, либо есть надёжный транспортный протокол (TLS).
Да, электронная подпись — тоже имитовставка. Только асимметричная.