Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在编写小程序来使用 AES 加密/解密文件。我正在使用 Cryptopp 库。
我需要帮助来理解一些事情。
当我加密文件时,我应该在文件开头写 IV 以便稍后解密?
我不想检查给定解密文件的密码是否正确。我是不是该:
在加密之前将一些字符串放在文件的开头(例如 TRUE)。解密后检查。
加密前检查文件的MD5。把它放在加密文件的开头。解密前读取MD5,解密文件,检查解密文件的MD5并进行比较。
在文件开头写 IV 很好。追加到末尾是另一种选择。
不要将静态字符串放入明文中:ENIGMA成绩单由于非常相似的原因更容易被破解,而zip 格式使暴力破解密码非常容易出现同样的错误。
md5 方法听起来可以接受;但是 hmac-sha256 会提供更强大的完整性声明。(我认为您甚至可以将 AES 密钥或 IV 重新用于 hmac-sha256,但我不肯定它的安全性。)