AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1067762
Accepted
Luís de Sousa
Luís de Sousa
Asked: 2018-08-22 23:37:42 +0800 CST2018-08-22 23:37:42 +0800 CST 2018-08-22 23:37:42 +0800 CST

无法在 Ubuntu 18.04 上使用 openssl 解密文本文件

  • 772

我无法解密openssl在 Ubuntu 16.04 上加密的一些文本文件。我总是收到此错误消息:

$ openssl des3 -d < ~/ISRIC/credentials.txt.des3.old > ~/temp/credentials.txt.old.2
enter des-ede3-cbc decryption password:
bad decrypt
139771261990464:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:../crypto/evp/evp_enc.c:536:

我很确定密码是正确的。问题是什么?

encryption openssl 18.04
  • 3 3 个回答
  • 7796 Views

3 个回答

  • Voted
  1. Neale Rudd - Metawerx Java
    2018-09-20T10:41:02+08:002018-09-20T10:41:02+08:00

    对于已经加密的文件,您可以使用md选项强制使用旧md5密码方法。

    这解决了我使用 1.0.2 和 aes-256-cbc 加密的文件的问题,这些文件在 18.04(openssl 1.1.0+)上无法解密。

    我之前的解密:

    cat encfile | openssl enc -d -aes-256-cbc -base64 >plainfile
    

    我在 18.04 上的新解密:

    cat encfile | openssl enc -md md5 -d -aes-256-cbc -base64 >plainfile
    

    注意:
    这不适用于在 18.04 (openssl 1.1.0g+) 上加密的文件,因为 Luis de Sousa 指出,默认情况下这些文件将使用较新的 SHA 密码方法。

    参考资料:
    https ://askubuntu.com/a/1067765/873241 (Luis de Sousa 的回答)
    https://bugzilla.redhat.com/show_bug.cgi?id=1520084
    https://github.com/fastlane/fastlane/问题/9542

    • 9
  2. Best Answer
    Luís de Sousa
    2018-08-22T23:40:30+08:002018-08-22T23:40:30+08:00

    使用的基于密码的加密算法openssl从 1.0.2 版(Ubuntu 16.04 附带)中的 MD5 更改为 1.1.0 版(Ubuntu 18.04)中的 SHA256。因此,在 Ubuntu 16.04 上加密的任何文件都无法在 Ubuntu 18.04 上解密。解决方案是安装以前的版本openssl,解密文件并使用较新的版本再次加密它们。一步步:

    首先下载旧版本openssl(这是 amd64 版本,其他版本请查看packages.ubuntu.com):

    wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.2g-1ubuntu13.6_amd64.deb
    

    现在直接使用 安装包dpkg,这将禁用较新的版本:

    $ sudo dpkg -i openssl_1.0.2g-1ubuntu13.6_amd64.deb
    

    确保您获得了正确的版本:

    $ openssl version
    OpenSSL 1.0.2g  1 Mar 2016 (Library: OpenSSL 1.0.2n  7 Dec 2017)
    

    现在解密文件:

    $ openssl des3 -d < secret.des3 > secret.txt
    

    然后安装最新的 openssl 构建,apt是一个选项:

    $ sudo apt install openssl
    

    确保它是最新版本:

    $ openssl version
    OpenSSL 1.1.0g  2 Nov 2017
    

    然后使用最新版本再次加密文件:

    $ openssl des3 < secret.txt > secret.des3
    

    最后删除.deb开头下载的文件:

    $ rm openssl_1.0.2g-1ubuntu13.6_amd64.deb
    
    • 3
  3. anthony
    2020-09-23T16:01:25+08:002020-09-23T16:01:25+08:00

    另一个答案基本上是正确的。尽管这些版本(v1.1.0 和 v1.1.1)的其他内容发生了变化,但请注意这一点。

    首先,默认密码散列摘要已更改,从 md5 变为 sha512

    其次,添加了长期以来需要的“-pbkdf2”“-iter”。然而,默认的迭代次数太少了,应该设置得尽可能高,而不会变得太烦人。对于加密和解密来说,大到 1/2 秒的时间通常是可以接受的,但是对于强制密码猜测来说非常困难。

    问题是现在我们拥有所有这些新选项和默认值,以及不同的摘要和密码,您需要记住所有这些选项才能解密加密文件。也就是说,决定加密的任何选项都必须用于解密。然而,openssl 只存储了一些“文件魔法”(例如文件开头的“Salted__”,以及使用的随机“salt”,以及加密文件。它让您记住其他所有内容!

    Aespipe 是一个旧程序,它通过将其中一些信息保存为加密数据的额外标头来解决这个问题,但它现在变得过时了,它的格式不允许新选项或易于扩展。

    作为替代方案,我一直在创建一个新脚本“keepout”作为“openssl enc”的包装,以保存记住如何解密该特定文件所需的那些额外选项,即使使用更新的选项、密码或更大的迭代加密时。基本上它保存了数据所需的 openssl 选项。

    https://antofthy.gitlab.io/software/#keepout

    • 0

相关问题

  • 迁移、分区和加密攻击计划

  • 如何加密我的主分区?

  • 使用加密的主目录重新安装 Ubuntu?

  • 如何从双启动计算机访问加密的主文件夹?

  • 安装时,我可以选择加密我的主文件夹——这是做什么的?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve