OpenSSL однострочный ввод base64. ошибка чтения входного файла

У меня есть файл с шифрованием AES, который закодирован в однострочную строку base64 (без линий разрыва), и мне нужно его расшифровать. Вот он.

Но когда я использую:

openssl enc -d -a -aes-256-cbc -in encrypted -out decrypted

OpenSSL выдает «ошибку чтения входного файла»
Но утилита base64 расшифровывает его как прелесть:

base64 -d encrypted | openssl enc -d -aes-256-cbc > decrypted

Пытаемся найти причину и преобразовать в однострочный файл base64:

base64 -w 0 aesfile | openssl enc -d -a -aes-256-cbc > decrypted
# error reading input file

base64 aesfile | openssl enc -d -a -aes-256-cbc > decrypted
# no errors, file decrypted

Вывод: OpenSSL не может декодировать не многострочные входные данные base64


person br.    schedule 13.02.2014    source источник
comment
Какой у Вас вопрос?   -  person jww    schedule 14.02.2014
comment
Ваш вывод правильный. Декодирование Openssl base64 не работает со строками длиннее 64 символов. Если они длиннее, вам нужно вставлять перевод строки через каждые 64 символа.   -  person kkeller    schedule 25.06.2016


Ответы (1)


Зашифровать

openssl enc -aes-256-cbc -pass pass:YOURPASSWORD -p -in msg.txt -out enc.txt -base64

Расшифровать

openssl enc -aes-256-cbc -base64 -pass pass:YOURPASSWORD -d -p -in enc.txt -out dec.txt

Если после строки base64 в зашифрованном файле нет newline, вы получите сообщение об ошибке error reading input file.

person Geograph    schedule 10.11.2015
comment
то есть: завершающий символ новой строки требуется для дешифруемой строки base64. Спасибо за это решение! - person rewolf; 10.08.2017