Как я могу зашифровать / расшифровать AES-256 CBC с OpenSSL?

1964
roblind

Я только что установил Linux (Ubuntu) в первый раз и также скачал пакет OpenSSL. Также открыл командную строку и попробовал некоторые команды, но ни одна из них не сработала.

Итак, у меня есть начальный вектор:, 5a04ec902686fb05a6b7a338b6e07760также есть зашифрованный текст: 14c4e6965fc2ed2cd358754494aceffaи соответствующий открытый текст:We're blown. Run

Теперь я предполагаю, что должна быть команда, в которой вы вводите начальный вектор и открытый текст, и в результате вы должны получить зашифрованный текст ...? Другая возможность: введите начальный вектор и зашифрованный текст, получите открытый текст.

Но как я могу сделать это в командной строке? Я уже попробовал команду:

openssl aes-256-cbc -e -nosalt -a -in input.txt -out output.txt -k key -iv ivkey 

о input.txt: Я создал этот файл на рабочем столе и написал в нем открытый текст. О output.txt, я тоже его создал и положил на рабочий стол, он пустой. После использования этой команды ничего не происходит!

Есть ли другая команда, которая может мне помочь? Я также попытался найти какой-нибудь полезный инструмент в интернете, но ничего не получалось! : /

1
`-K` должен быть` -K`, если вы хотите указать необработанный шестнадцатеричный ключ. forest 5 лет назад 1
@forest Спасибо! Но все равно ничего не происходит ^^ 5 лет назад 0
Вы также не хотите `-a`, если хотите получить шестнадцатеричный вывод. Вместо этого отправьте его в `xxd`. Поскольку открытый текст и зашифрованный текст имеют ровно 16 байтов, вам также понадобится `-nopad`. AndrolGenhald 5 лет назад 1
@AndrolGenhald Здорово, похоже, я сделал еще один шаг вперед. Теперь меня просят «ввести пароль шифрования aes-256-cbc». Я только что вошел в «1» 32 раза, но опять ничего не произошло после. 5 лет назад 0
Тогда кажется, что он не понимает, что вы указываете необработанные ключи. Не забудьте использовать `-K` с шестнадцатеричным ключом и` -iv` с шестнадцатеричным IV. Это позволит принять это напрямую, а не запрашивать пароль. Когда он запрашивает у вас пароль, он ищет ASCII, который он будет хэшировать с SHA-256 (на более новых сборках) или MD5 (на более старых сборках), прежде чем использовать непосредственно в качестве ключа. forest 5 лет назад 1
@forest как шестнадцатеричный ключ -K Я только что использовал зашифрованный текст. Может быть, это была ошибка? Но что еще я могу использовать, если это вызвало проблему? 5 лет назад 0
Вы должны использовать ключ, используемый для его шифрования. Если вы не знаете ключ, вы не можете его расшифровать ... так работает криптография. AndrolGenhald 5 лет назад 1
@roblind Зашифрованный текст находится в файле для `-in` (если вы делаете расшифровку). `-K` для ключа, а не зашифрованного текста. forest 5 лет назад 1
@forest Хорошо, последняя команда, которую я использовал: openssl aes-256-cbc -d xxd -nosalt -nopad -inciphertext -out output.txt -iv theinitialvector, но мне все еще задают пароль 5 лет назад 0
Вам все еще не хватает `-K`. И для чего здесь xxd? Вы хотите использовать xxd для просмотра файла после расшифровки. forest 5 лет назад 2

1 ответ на вопрос

2
SergA

Подготовьте ввод текста:

echo "We're blown. Run" >input.txt 

Encode:

openssl aes-256-cbc -nosalt -e \ -in input.txt -out output.txt \ -K '2222233333232323' -iv '5a04ec902686fb05a6b7a338b6e07760' 

Расшифровать в исходный текст stdout:

openssl aes-256-cbc -nosalt -d \ -in output.txt \ -K '2222233333232323' -iv '5a04ec902686fb05a6b7a338b6e07760' 

Похожие вопросы