首页 > 解决方案 > 什么会导致 OpenSSL 损坏 TAR 文件?

问题描述

我正在使用 openssl 加密和解密文件,但我看到了一个奇怪的结果。我希望生成的文件与我开始使用的文件相同,但事实并非如此。有谁知道会导致这种情况的事情?我已经尝试过全新安装 openssl 并获得相同的结果。

这是我正在做的事情:

  1. 从初始文件(file1)开始加密它

     # openssl enc -aes-256-cbc -e -in file1 -out file2 -K 1234abcd -iv 1234
    
  2. 没有错误并创建加密文件(file2)

  3. 使用相同的方法解密文件

     # openssl enc -aes-256-cbc -d -in file2 -out file3 -K 1234abcd -iv 1234
    
  4. 将原始文件与解密文件 (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 通过检查。知道焦油如何影响它吗?

重建文件系统后,我仍然得到相同的结果并且感到困惑。此问题似乎不会影响任何其他功能,仅影响此加密操作。

标签: encryptionopenssl

解决方案


推荐阅读