Простые встроенные способы шифрования и дешифрования файла на Mac через командную строку?

Вопрос или проблема

Есть ли встроенные инструменты командной строки, с помощью которых я могу зашифровать и расшифровать текстовый файл (и предоставить ему какой-либо пароль).

openssl предустановлен на Mac OS X.

Вы можете использовать следующие команды:

# зашифровать file.txt в file.enc с использованием AES-256 в режиме CBC
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc

# то же самое, только вывод кодируется в base64 для, например, электронной почты
openssl enc -aes-256-cbc -a -salt -in file.txt -out file.enc

# расшифровать бинарный файл file.enc
openssl enc -d -aes-256-cbc -in file.enc -out file.txt

# расшифровать версию в base64
openssl enc -d -aes-256-cbc -a -in file.enc -out file.txt

(скопировано с OpenSSL Command-Line HOWTO: Как мне просто зашифровать файл?)

Вам будет предложено ввести пароль. Вы также можете указать пароль на командной строке, используя -pass pass:mySillyPassword или -pass file:/path/to/secret/password.txt

Эти команды используют 256-битное шифрование AES с цепочкой блочных шифров (CBC), что на данный момент является довольно надежным.

Mac OS X имеет возможность создавать зашифрованные контейнерные файлы (аналогично, например, Truecrypt), которые при необходимости могут увеличиваться в размере с добавлением данных. Используйте Disk Utility для этого.

В Disk Utility выберите File » New » Blank Disk Image… с одним из форматов sparse. Выберите AES-128 или AES-256 в качестве шифрования.


С командной строки аналогичный функционал доступен через программу hdiutil.

Я создал оболочку для этого. Вы можете использовать ее на Mac или Linux.

#!/bin/bash
#шифрование файлов с помощью шифра aes-256-cbc с использованием openssl

#шифрование файлов
if [ $1 == "-e" ];
then
    if [ -f "$2" ];
    then
    openssl aes-256-cbc -a -e -salt -in "$2" -out "$2.aes"
    else
       echo "Этот файл не существует!" 
    fi
#расшифровка файлов
elif [ $1 == "-d" ];
then
    if [ -f "$2" ];
    then
        openssl aes-256-cbc -a -d -salt -in "$2" -out "$2.decrypt"
    else
        echo "Этот файл не существует!" 
    fi
#показать помощь
elif [ $1 == "--help" ];
then
    echo "Это программное обеспечение использует openssl для шифрования файлов с помощью шифра aes-256-cbc"
    echo "Использование для шифрования: ./encrypt -e [file]"
    echo "Использование для расшифровки: ./encrypt -d [file]"
else
    echo "Это действие не существует!"
    echo "Используйте ./encrypt --help для показа справки."
fi

Просто сохраните это в текстовом файле и выполните chmod +x file, чтобы сделать его исполняемым. После этого используйте ./filename –help для получения информации.

Я использовал команду zip довольно долго с паролем.

Она, по сути, создает zip-файл, защищенный паролем. Затем, чтобы получить данные, вы unzip с использованием пароля, чтобы получить файл без пароля.

Защитите файл паролем

zip -e filetoprotect.zip filetoprotect.txt

Введите пароль для защиты.

Извлечение файла из zip, защищенного паролем

unzip filetoprotect.zip

Введите пароль, чтобы получить файл без пароля.

Ответ или решение

На Mac вы можете использовать встроенные команды для шифрования и расшифровки файлов через командную строку. Рассмотрим наиболее простые и безопасные методы, основанные на инструментах, которые уже установлены в операционной системе.

1. Использование OpenSSL

OpenSSL предоставляет мощный инструмент для шифрования данных с помощью различных алгоритмов, включая алгоритм AES. В Mac OS X OpenSSL предустановлен, и его можно использовать через терминал.

Шифрование файла

Чтобы зашифровать текстовый файл с помощью AES-256 в режиме CBC, выполните следующую команду:

openssl enc -aes-256-cbc -salt -in файл.txt -out файл.enc
  • -aes-256-cbc: указывает алгоритм шифрования.
  • -salt: добавляет случайные данные (salt) для повышения безопасности.
  • -in: имя файла, который вы хотите зашифровать.
  • -out: имя выходного файла, в который будет записана зашифрованная информация.

При выполнении этой команды вас попросят ввести пароль, который будет использоваться для шифрования.

Расшифровка файла

Чтобы расшифровать файл, используйте следующую команду:

openssl enc -d -aes-256-cbc -in файл.enc -out файл.txt
  • -d: указывает, что вы хотите расшифровать файл.

Если файл был зашифрован с использованием base64 (например, для вставки в email), используйте флаг -a:

openssl enc -d -aes-256-cbc -a -in файл.enc -out файл.txt

2. Создание зашифрованного образа диска с помощью hdiutil

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

hdiutil create -encryption -size 100m -fs APFS -volname "SecureDisk" имя_файла.dmg
  • -encryption: указывает, что образ диска будет зашифрован.
  • -size: указывает размер образа.
  • -fs: файловая система для использования в образе.
  • -volname: имя тома, которое будет отображаться при монтировании.

Вас также попросят ввести пароль, который будет использоваться для шифрования.

3. Использование zip для шифрования файлов

Другой простой способ защиты файлов — это использование команды zip, которая позволяет создать зашифрованный zip-архив.

Для создания защищенного zip-файла используйте следующую команду:

zip -e защищенный.zip файл.txt
  • -e: указывает на необходимость использования шифрования.

Чтобы распаковать зашифрованный zip-файл, используйте:

unzip защищенный.zip

При этом будет запрошен пароль для доступа к архиву.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...