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


40

Чи є вбудовані інструменти командного рядка, за допомогою яких я можу зашифрувати та розшифрувати текстовий файл (і надати йому якийсь пароль).


Вбудований = поставляється з Mac, попередньо встановлений?
wizlog

Відповіді:


53

openssl поставляється заздалегідь встановленою на Mac OS X.

Ви можете використовувати такі команди:

# encrypt file.txt to file.enc using 256-bit AES in CBC mode
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc

# the same, only the output is base64 encoded for, e.g., e-mail
openssl enc -aes-256-cbc -a -salt -in file.txt -out file.enc

# decrypt binary file.enc
openssl enc -d -aes-256-cbc -in file.enc -out file.txt

# decrypt base64-encoded version
openssl enc -d -aes-256-cbc -a -in file.enc -out file.txt

(скопійовано з командного рядка OpenSSL HOWTO: Як просто зашифрувати файл? )

Ці команди використовують 256-розрядне шифрування AES за допомогою Cipher Block Chaining (CBC), що настільки ж безпечно, як і зараз.


1
де ви вводите свій пароль?
завершення коду

3
Після того, як ви виконали будь-яку з перерахованих вище opensslкоманд, вона попросить вас enter aes-256-cbc encryption password.
Денніс

1
@codecompleting Або вкажіть -pass pass:MYSECRETPASSWORD, хоча пароль, звичайно, тоді не прихований від psтощо.
Acumenus

2
@Wildcard Так, сіль (фактично вектор ініціалізації) зберігається разом із шифровим текстом у зашифрованому файлі.
Денніс

1
Шифрування @KolobCanyon ніколи не втрачає. За визначенням, вона потребує можливості розшифрувати шифротекст для відновлення початкового простого тексту. Просто не забудьте ключ.
Денніс

6

Я створив для цього сценарій оболонки. Ви можете використовувати його на Mac або Linux.

#!/bin/bash
#encrypt files with aes-256-cbc cipher using openssl

#encrypt files
if [ $1 == "-e" ];
then
    if [ -f "$2" ];
    then
    openssl aes-256-cbc -a -e -salt -in "$2" -out "$2.aes"
    else
       echo "This file does not exist!" 
    fi
#decrypt files
elif [ $1 == "-d" ];
then
    if [ -f "$2" ];
    then
        openssl aes-256-cbc -a -d -salt -in "$2" -out "$2.decrypt"
    else
        echo "This file does not exist!" 
    fi
#show help
elif [ $1 == "--help" ];
then
    echo "This software uses openssl for encrypting files with the aes-256-cbc cipher"
    echo "Usage for encrypting: ./encrypt -e [file]"
    echo "Usage for decrypting: ./encrypt -d [file]"
else
    echo "This action does not exist!"
    echo "Use ./encrypt --help to show help."
fi

Просто збережіть це у текстовому файлі у файлі chmod + x, щоб зробити його виконуваним. після цього використовуйте ./filename - допоможіть отримати інформацію.


2
Зайве використання -aбуде непотрібно роздути вихідний файл.
Acumenus

5

Mac OS X має можливість створювати зашифровані файли контейнерів (подібні, наприклад, Truecrypt), які за бажанням можуть зростати із кількістю розміщених у них даних. Використовуйте Disk Utility для цього.

У програмі Disk Utility виберіть « Файл» Нове »Порожнє зображення диска… з одним із розріджених форматів зображення. Виберіть AES-128 або AES-256 як шифрування.


З командного рядка та сама функціональність доступна через hdiutilпрограму.


Трохи надлишок для одного текстового файлу, призначеного для доступу до командного рядка, чи не так? Чи можете ви відкрити файл пізніше через Linux et. al.?
Wildcard

@Wildcard Можливо (масштаб має тенденцію до зміни); і ні, але це не було частиною питання.
Даніель Бек

@DanielBeck, вихідний біт ідентичний як Ans1?
Pacerier
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.