AES加密后为什么要使用HMAC哈希进行验证?

aes加密后为什么要使用hmac哈希进行验证?

aes加密后的hmac哈希

在go标准库中,对于aes加密有这样的提示:

// It's important to remember that ciphertexts must be authenticated
// (i.e. by using crypto/hmac) as well as being encrypted in order to
// be secure.

这是什么意思呢?

答案:

aes加密有多种模式,最常用的有cbc和gcm两种。cbc模式只提供保密性,而不提供完整性。gcm是一种aead(关联数据认证加密)加密,同时满足了保密性和完整性。在go中,可以通过newgcm来创建gcm加密器。

而你提到的代码示例可能是使用了cbc模式,因此需要在加密后再使用hmac哈希来进行完整性验证。所以在传输时,需要同时传输密文和哈希值。在接收方,需要先验证哈希值,以确保密文未被篡改。

以上就是AES加密后为什么要使用HMAC哈希进行验证?的详细内容,更多请关注其它相关文章!