encryption - 什么会导致 OpenSSL 损坏 TAR 文件?
问题描述
我正在使用 openssl 加密和解密文件,但我看到了一个奇怪的结果。我希望生成的文件与我开始使用的文件相同,但事实并非如此。有谁知道会导致这种情况的事情?我已经尝试过全新安装 openssl 并获得相同的结果。
这是我正在做的事情:
从初始文件(file1)开始加密它
# openssl enc -aes-256-cbc -e -in file1 -out file2 -K 1234abcd -iv 1234
没有错误并创建加密文件(file2)
使用相同的方法解密文件
# openssl enc -aes-256-cbc -d -in file2 -out file3 -K 1234abcd -iv 1234
将原始文件与解密文件 (file3) 进行比较
# cksum file1 file3 4167212980 9021440 file1 1512110269 9021440 file3 # cmp file1 file3 file1 file3 differ: char 1630209, line 6196
我已经在其他机器上运行这个测试没有问题。这个有点奇怪,我不确定这是一个openssl问题还是更深层次的问题。
这是针对 ARM 的 OpenSSL 版本 1.0.2r 的交叉编译版本,但我在 1.0.2n 中看到了相同的结果。我唯一能想到的就是完全重建我的文件系统,也许某些底层库有一些交叉编译问题?
编辑: 我注意到的一个关键证据。我的 file1 是一个 .tar,我尝试使用 OpenSSL 进行加密/解密的原始文件也是如此。看起来我通过 OpenSSL 运行的任何 tar 都会导致此问题,但其他文件都很好。简单的 ascii 文件、可执行文件,我尝试过的所有不是 tarball 的东西都可以正常工作,并使用 cksum 和 cmp 通过检查。知道焦油如何影响它吗?
重建文件系统后,我仍然得到相同的结果并且感到困惑。此问题似乎不会影响任何其他功能,仅影响此加密操作。
解决方案
推荐阅读
- r - expss 包中的显着性测试行
- python - shareplum 仅从 SharePoint 列表返回 7 列
- c++ - C++ 从按顺序执行的其他 constexpr lambda 创建 lambda 不能是 constexpr
- firebase - 如何摆脱这个错误?错误:没有创建 Firebase 应用“[DEFAULT]” - 调用 firebase.initializeApp()
- laravel - laravel 将数据动态卡到 1 模态
- java - activemq - javax.jms.IllegalStateException:AMQ219019:会话已关闭
- javascript - Sequelize Many to Many - 更新关联表
- javascript - 创建不带参数的 JavaScript 函数并使用点传递数据
- javascript - if 语句在单击时提示一个弹出框
- django - Hostgator VPS 中的 Django 部署 - 同一服务器上的 PHP 和 Python - easyapache24 和 mod-wsgi