openssl AES 加密在输出中添加了相当于块大小的字节
我正在尝试在控制台上使用 openssl 进行加密,以匹配 AES 的另一个实现生成的输出。所有细节都已知。我在 128 位 CBC 模式下使用 AES。奇怪的是,无论文件大小如何,输出都会大 16 个字节。我认为 openssl 正在附加某种填充。
在其他实现的方向上,这并不是什么大问题,因为我可以删除最后 16 个字节,但相反的是,因为我无法发明 openssl 可能会检查有效性的字节。
我如何告诉 openssl 不要这样做?
命令行:
openssl enc -aes-128-cbc -K <pre-shared key in hex> -in rawfile.bin -out encfile.enc -iv <pre-shared IV in hex>
I'm trying to encrypt with openssl on the console to match output generated by another implementation of AES. All details are known. I'm using AES in 128-bit CBC mode. Weirdly enough, irrespective of the file size, the output will be 16 bytes larger. I think openssl is appending some kind of padding.
In the direction to the other implementation it's not that much of a problem as I can drop the last 16 bytes, but the other way around is as I can't invent the bytes that openssl will probably check for validity.
How do I tell openssl not to do that?
Commandline:
openssl enc -aes-128-cbc -K <pre-shared key in hex> -in rawfile.bin -out encfile.enc -iv <pre-shared IV in hex>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
openssl enc
有一个-nopad
选项。我没有使用过它,但听起来很相关。openssl enc
has a-nopad
option. I've not used it, but it sounds relevant.