Openssl -z(压缩)的行为非常奇怪

时间:2020-05-31 06:54:15

标签: encryption openssl compression

根据'enc'手册,'-z'将压缩纯文本,然后再加密(如果openssl是使用zlib构建的)。换句话说,尽管输入已压缩,但输出仍应看起来像普通的“加盐” openssl加密文件。

我的版本(Linux fedora 31,v1.1.1g)确实包含了zlib(根据ldd),但是结果与手册页建议的情况不符。

如果我使用'-z'加密内容,尽管输入(纯文本)应压缩得很好,但文件最终会变得更大。不过,它可以解密(使用相同的选项,加上“ -d”)。

openssl enc -aes-256-cbc -salt -pbkdf2 -iter 500000 -z -in lorum_ipsum.txt -out encrypted

看一下文件,我可以在输出中看到'Salted__'文件魔术,但是文件魔术前面还有8个字节的数据!这与所记录的完全不同!

进一步增加了怪异性,如果我添加“ -base64”,我期望输出只是在base64编码下完全相同(GPG术语为ASCII Armored)。但是相反,输出仍然是一个二进制文件,但完全不同,只是稍大一点(实际上不足以考虑到base64提供的3到4字节映射增加。同样,使用相同的选项,它仍然可以很好地解密。

同样,这似乎表明预期的输出是在未加密之前修改的!

现在,我确实发现有一些额外的配置设置,当编译openssl以使'-z'压缩正常工作时,它是必需的,但是我所看到的与手动建议应该发生的事情不符。

有人知道发生了什么事吗?

0 个答案:

没有答案
相关问题