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加密后,再用hmac哈希一下,传输的时候,密文和哈希值一起传输,接收到数据后先对比哈希值,看看密文有没有别篡改?是这个意思吗?

阅读 2k
1 个回答

加密有多种模式,对于AES加密而言,最常用的有CBC,GCM两种,其中GCM是一种AEAD)加密,同时满足了信息安全里面的“保密性C”和“完整性I”两个要求。

在golang里面,除了CBC,还提供了GCM模式,参考 go NewGCM,你看的应该是CBC模式,这种模式是不带认证的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题