3

Я недавно обновил свой компьютер до 64-битного тестирования Debian. С тех пор расшифровка файлов, которые были зашифрованы с помощью openssl в 32-битном Debian, больше не работает.

Я использовал для шифрования файлов, например, так:

$ openssl des3 -in bla.txt -out bla.txt.des3

и расшифровать так:

$ openssl des3 -d -in bla.txt.des3 -out bla.txt

Это по-прежнему работает, если я подключусь к резервной копии старой 32-битной тестовой установки Debian. На 64-битной установке я получаю следующую ошибку:

$ openssl des3 -d -in bla.txt.des3 -out bla.txt
enter des-ede3-cbc decryption password:
bad decrypt
140219224302720:error:06065064:digital envelope outines:EVP_DecryptFinal_ex:bad decrypt:crypto/evp/evp_enc.c:529:

Как правильно вызывать openssl в 64-битной системе тестирования Debian для декодирования файлов?

РЕДАКТИРОВАТЬ информацию о версии:

старый (32-битный в chroot):

$ openssl version
OpenSSL 1.0.2j  26 Sep 2016
$ dpkg -l | grep ssl
ii  libssl1.0.2:i386                                            1.0.2j-1                             i386         Secure Sockets Layer toolkit - shared libraries
ii  openssl                                                     1.0.2j-1                             i386         Secure Sockets Layer toolkit - cryptographic utility
ii  ssl-cert                                                    1.0.38                               all          simple debconf wrapper for OpenSSL
$ ldd /usr/bin/openssl
  linux-gate.so.1 (0xf7729000)
  libssl.so.1.0.2 => /usr/lib/i386-linux-gnu/libssl.so.1.0.2 (0xf769c000)
  libcrypto.so.1.0.2 => /usr/lib/i386-linux-gnu/libcrypto.so.1.0.2 (0xf7498000)
  libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7493000)
  libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf72dc000)
  /lib/ld-linux.so.2 (0x5663b000)

новый (64-разрядный):

$ openssl version
OpenSSL 1.1.0c  10 Nov 2016
$ dpkg -l | grep ssl
ii  libssl1.0.2:amd64                                           1.0.2j-4                          amd64        Secure Sockets Layer toolkit - shared libraries
ii  libssl1.1:amd64                                             1.1.0c-2                          amd64        Secure Sockets Layer toolkit - shared libraries
ii  openssl                                                     1.1.0c-2                          amd64        Secure Sockets Layer toolkit - cryptographic utility
ii  ssl-cert                                                    1.0.38                            all          simple debconf wrapper for OpenSSL
$ ldd /usr/bin/openssl 
linux-vdso.so.1 (0x00007ffe63c76000)
libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f9b74487000)
libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f9b73ff6000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9b73df2000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9b73bd5000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9b73837000)
/lib64/ld-linux-x86-64.so.2 (0x000055a182164000)

1 ответ1

2

Это связано с тем, что в OpenSSL 1.1.0 значение по умолчанию для дайджеста сообщения изменилось с md5 на sha-256. Расшифровка материала с использованием старого дайджеста остается возможной, если вы сделаете это явно:

openssl des3 -d -in bla.txt.des3 -out bla.txt -md md5

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .