Как я могу зашифровать файл?

Используйте шарик удара в ударе для цикла. Как это:

for filename in /*; do :; done; echo "$filename"

Это зависит от того, что удар делает расширение шарика, отсортированное в алфавитном порядке. Прочитайте руководство удара для получения дополнительной информации. Обратите внимание, что это зависит от LC_COLLATE. Это также зависит от того, что переменная filename все еще содержит последнее значение после того, как цикл завершился.

Если Вы хотите имя файла с самой старой меткой времени, можно сделать это как это:

for filename in /*; do echo "$filename"; break; done

9
19.10.2014, 12:31
3 ответа

Вы можете использовать OpenSSL для шифрования и расшифровки с использованием ключевых симметричных шифров. Например:

openssl enc -in foo.bar \
    -aes-256-cbc \
    -pass stdin > foo.bar.enc

Это шифрование foo.bar - foo.bar.enc (вы можете использовать коммутатор , чтобы указать выходной файл, вместо Перенаправление STDOUT, как указано выше), используя 256 бит AES в режиме CBC . Существуют различные другие доступные шигии (см. MAN ENT ). Затем команда будет дождаться, когда вы ввели пароль и используете это для создания соответствующей клавиши. Вы можете увидеть ключ с -P или используйте свой собственный на месте пароля с -k (на самом деле его немного сложнее, чем это, так как с анализа инициализации или необходим источник, см. MAN ENT снова). Если вы используете пароль, вы можете использовать один и тот же пароль для расшифровки, вам не нужно смотреть или держать сгенерированный ключ.

Чтобы расшифровать это:

openssl enc -in foo.bar.enc \
    -d -aes-256-cbc \
    -pass stdin > foo.bar

обратите внимание на -D . Смотрите также Человек OpenSSL .

21
27.01.2020, 20:04

В одноразовых случаях вы можете зашифровать с помощью zip и пароля. Хотя это и не так надежно, как методы, основанные на ключах (потому что сложно иметь хороший пароль), это, вероятно, прекрасные специальные ситуации.

Командная строка выглядит так:

zip -r -0 -e encrypted_file.zip /path/to/files

-r to recurse directories.
-e to encrypt
4
27.01.2020, 20:04

Небольшие модификации ответа @goldilocks:

Шифрование

openssl enc -in foo -aes-256-cbc -pbkdf2 -out foo.enc

Отличия:

  1. Если не указывать аргументы -pass stdin, будет предложено «ввести aes -256 -пароль шифрования cbc :» и вы сможете ввести парольную фразу, не отображая ее в консоли;
  2. Он будет использовать алгоритм PBKDF2с итерациями по умолчанию и скроет предупреждение «***ПРЕДУПРЕЖДЕНИЕ :используется устаревшая деривация ключа. Лучше использовать -iter или -pbkdf2».

Расшифровка

openssl enc -d -in foo.enc -aes-256-cbc -pbkdf2 -out foo.plain
1
27.09.2021, 19:12

Теги

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