HMAC 是否加密原始明文消息?

Does HMAC encrypts the original Plaintext message?

所以我的问题是 3 的组合:

  1. HMAC 哈希是否也将消息与密钥一起发送给收件人?或者只是对密钥进行哈希处理,将消息保留为明文?
  2. 如果仅对密钥进行哈希处理(而不是对消息进行哈希处理),如果未经授权的人(攻击者)可以访问该明文并轻松理解它,是否会使消息容易受到攻击?
  3. 如果将两者(消息 + 密钥)连接起来形成散列,HMAC 与 'SALTING' 方法有何不同?

HMAC 对消息进行身份验证。它不加密它。如果要加密消息,请先加密,然后再应用 HMAC。 (这通常称为“encrypt-then-MAC”构造。)

身份验证的目的是证明消息未被更改。加密的目的是防止其他方读取消息。这些通常会一起出现,但并非必须如此。