使用不带标头的 AES 加密

yah*_*avi 1 c++ encryption openssl redhat aes

我正在尝试使用 AES 加密 16KiB 块。

我尝试使用 openssl 执行此操作,但大小从 16384 增长到 16416。看起来 openssl 放置了 32B 标头。

有什么办法可以“删除”32B头吗?如果重要的话,我的环境是Redhat 5.11。

编辑:我只尝试了 openssl 的命令行工具:加密:

openssl aes-256-cbc -in text.txt -out encrypted.txt
Run Code Online (Sandbox Code Playgroud)

解密:

openssl aes-256-cbc -d -in encrypted.txt -out decrypted.txt
Run Code Online (Sandbox Code Playgroud)

另外 - 我需要一个可以与 C++ 一起使用的工具。

Ser*_*rge 5

不,它没有放置标题。它做了填充

AES是一种具有 128 位块大小的分组密码,要求加密的数据长度与密码块大小相等。该填充还用于在解密后恢复原始数据流长度。

编辑:

根据 @jww,openssl lib 还在流前面添加了 16 字节标头,其中包含一个神奇的 8 字节字符串“Salted__”和一个从密码派生的 IV