使用AES加密/解密

问题描述:

我正在编写使用AES加密/解密文件的小程序。我正在使用Cryptopp库。使用AES加密/解密

我需要帮助来了解一些事情。

当我正在加密文件时,我应该在文件的开头写入IV来稍后解密它?

我不想检查密码给出的解密文件是否正确。我应该:

  • 在加密之前在文件的开头放置一些字符串(例如TRUE)。解密后检查它。

  • 在加密前检查文件的MD5。把它放在加密文件的开头。在解密之前阅读MD5,解密文件,检查解密文件的MD5并比较它们。

在文件开头写入IV是好的。追加到另一个选项是结束。

不要把一个静态字符串放入明文:ENIGMA由于非常类似的原因,成绩单更容易被打破,并且zip format使得暴力强制密码very easy出现这个相同的错误。

md5方法听起来可以忍受;但hmac-sha256将提供更强大的完整性声明。 (我认为你甚至可以重复使用AES密钥或hmac-sha256的IV,但我对它的安全性不积极。)