使用 AES 加密/解密

Posted

技术标签:

【中文标题】使用 AES 加密/解密【英文标题】:Encrypt/Decrypt with AES 【发布时间】:2010-08-04 11:45:41 【问题描述】:

我正在编写文件的小程序。我正在使用 Cryptopp 库。

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

当我加密文件时,我应该在文件开头写 IV 以便稍后解密?

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

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

在加密前检查文件的 MD5。把它放在加密文件的开头。解密前读取MD5,解密文件,查看解密文件的MD5并进行比较。

【问题讨论】:

【参考方案1】:

在文件开头写 IV 很好。追加到末尾是另一种选择。

不要将静态字符串放入明文中:ENIGMA 转录本更容易因为非常相似的原因而被破解,zip format 会因为同样的错误而使用暴力破解密码 very easy。

md5 方法听起来可以接受;但是 hmac-sha256 会提供更强大的完整性声明。 (我认为您甚至可以将 AES 密钥或 IV 重新用于 hmac-sha256,但我不肯定它的安全性。)

【讨论】:

以上是关于使用 AES 加密/解密的主要内容,如果未能解决你的问题,请参考以下文章

java加密用PHP解密

Aes 加密解密 java加密解密

DES加密解密与AES加密解密

用c#做aes加密 为啥在线解密解不了

AES加密和解密Java

PHP的aes加解密算法