Как отобразить ключ к файлу с помощью OpenSSL?

551
user577439

Я новичок в шифровании, поэтому я могу сделать с некоторой помощью:

Я пытаюсь следовать руководству на веб-сайте MariaDB, чтобы создать ключ aes-256-cbc для шифрования моих данных в покое.

Строка, которую он говорит мне, чтобы скопировать и вставить это:

enc -aes-256-cbc -md sha1 -k secret -in keys.txt -out keys.enc 

Который в данном случае вернул мне это.

Salted__›­}´3`ìe›‚Å)l‘»ŽWݧ 

Это не то, что мне нужно.

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

Ключ выглядит примерно так:

770A8A65DA156D24EE2A093277530142 

РЕДАКТИРОВАТЬ: Это также не позволяет мне копировать из приглашения CMD.

2
Если вы хотите, чтобы вывод `-p` /` -P` был записан в файл, я полагаю, вы можете сделать что-то вроде `enc ...> name.txt`? Tom Yan 8 лет назад 0
Чтобы ** скопировать из приглашения Windows CMD ** (на самом деле это окно консоли), щелкните значок слева от заголовка заголовка (или ALT + SP) или щелкните правой кнопкой мыши в любом месте заголовка заголовка; выберите Edit / Mark; удерживая кнопку мыши, перетаскивая текст, который вы хотите, ИЛИ щелкните один конец, а затем нажмите shift на другом конце; нажмите ENTER. dave_thompson_085 8 лет назад 1
* «Это также не позволяет мне копировать из приглашения CMD ....» * - Вам необходимо включить режим *** Quick Edit ***. Также см. [Режим командной строки быстрого отключения по умолчанию отключен] (https://support.microsoft.com/en-us/kb/282301) в MSDN. jww 8 лет назад 0

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

2
Tom Yan

Команда, которую вы использовали, зашифровывает файл keys.txtключом, сгенерированным из secretпредоставленной вами парольной фразы ( ) (и случайно сгенерированной «солью», если вы не используете эту -nosaltопцию).

Я не уверен, что вы действительно хотите. Если вы хотите, чтобы openssl показывал ключ, сгенерированный из вашей парольной фразы / для шифрования, вы можете использовать эту опцию -p(или -Pесли вы не хотите, чтобы фактическое шифрование продолжалось). Вы заметите, что ключ будет меняться при каждом запуске команды, если вы не используете -nosalt.

Или, может быть, то, что вы хотите -base64(хотя, похоже, это не так в соответствии с примером, который вы показали), которое будет дополнительно кодировать зашифрованный файл с помощью определенного алгоритма, так что на выходе получится строка ASCII: https: // en.wikipedia.org/wiki/Base64

Как вы, возможно, уже заметили, если вы не хотите, чтобы источник был «загрязнен» «соленым коллектором», вы можете также захотеть -nosaltиспользовать его -base64.

Если вы просто хотите получить случайный ключ, вы должны сделать что-то вроде этого:

enc -aes-256-cbc -pass file:/dev/urandom -P 

Кстати, когда вы используете -p/ -P, кроме key(и а salt), вы также увидите iv, что обозначает вектор инициализации .