2

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

Я пытаюсь следовать руководству на веб-сайте 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.

1 ответ1

2

Команда, которую вы использовали, зашифровывает файл 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 , кроме keysalt), вы также увидите iv , который обозначает вектор инициализации.

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