2

У меня есть инструмент, который использует OpenSSL для работы RSA и DES/TDES. После обработки инструментом я получил key = 4F324364970DBA5DE058EF0EAE54625E и зашифрованные данные похожи на data = D4B596A6724A32B4663965688F28E01C

Здесь, когда я пытаюсь использовать онлайн-инструмент DES_Calculator для дешифрования, после дешифрования требуется простой текст, что я обнаружил, нужно попробовать TDES в режиме CBC.

Я попытался сделать то же самое (расшифровка) с OpenSSL с помощью следующей команды:

 C:\OpenSSL-Win32\bin>openssl enc -d -des-ede-cbc -nosalt -k 4F324364970DBA5DE058
EF0EAE54625E -iv 0000000000000000 -in ENC_DATA -out ENC_DATA_O
bad decrypt
6088:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:.\
crypto\evp\evp_enc.c:529:

где содержание ENC_DATA похожеENC_DATA

Здесь я хочу тот же результат, что и от онлайн-инструмента.

Также та же команда работает нормально после того, как опция -e выполнена для того же набора файлов. Может кто-нибудь сказать мне, почему эта ошибка происходит и как ее устранить?

1 ответ1

2

Попробуйте -K вместо -k . -k используется для парольных фраз и -K для ключей в шестнадцатеричных числах. Возможно, вам больше не потребуется опция -nosalt .

Вам нужно использовать -nopad и удалить битовую вставку самостоятельно.

Битовое заполнение состоит из одного бита, установленного в 1, за которым следуют несколько битов, установленных в 0. Если открытый текст состоит из байтов - обычно это происходит - тогда заполнение битами равно одному байту 80 за которым следует ноль или более байтов со значением 00 .

В настоящее время обычно используется PKCS # 7-совместимое заполнение. OpenSSL может удалить только заполнение PKCS # 7.

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