我正在编写小程序来使用AES加密/解密文件。我正在使用Cryptopp库。
我需要帮助来理解一些事情。
当我加密文件时,我应该在文件开头写IV以便稍后解密?
我要检查密码给出解密文件是否正确。我应该:
在加密前将一些字符串放在文件的开头(例如TRUE)。解密后检查一下。
加密前检查文件的MD5。把它放在加密文件的开头。解密前读取MD5,解密文件,检查解密文件的MD5并进行比较。
答案 0 :(得分:1)
在文件开头写IV是没问题的。追加到底是另一种选择。
不要在明文中放置静态字符串:ENIGMA成绩单更容易被打破,原因非常相似,zip format为这个相同的错误制作了强制密码very easy。
md5方法听起来可以忍受;但是hmac-sha256会提供更强的完整性声明。 (我想你甚至可以重复使用AES键或者用于hmac-sha256的IV,但我对它的安全性没有好感。)