Einfache integrierte Methode zum Ver- und Entschlüsseln einer Datei auf einem Mac über die Befehlszeile?

39

Gibt es eingebaute Befehlszeilentools, mit denen ich eine Textdatei verschlüsseln und entschlüsseln kann (und die ein Kennwort enthält)?

Codecompleting
quelle
Built in = kommt mit dem Mac, vorinstalliert?
Wizlog

Antworten:

52

openssl wird unter Mac OS X vorinstalliert geliefert.

Sie können die folgenden Befehle verwenden:

# 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

(kopiert von OpenSSL Command-Line HOWTO: Wie verschlüssele ich einfach eine Datei? )

Diese Befehle verwenden eine 256-Bit-AES-Verschlüsselung mit Cipher Block Chaining (CBC).

Dennis
quelle
1
wo gibst du dein passwort ein
Codecompleting
3
Sobald Sie einen der oben genannten opensslBefehle ausgeführt haben, werden Sie dazu aufgefordert enter aes-256-cbc encryption password.
Dennis
1
@codecompleting Oder angeben -pass pass:MYSECRETPASSWORD, obwohl das Passwort dann natürlich nicht verborgen psist usw.
Acumenus
2
@Wildcard Ja, das Salt (eigentlich der Initialisierungsvektor) wird mit dem Chiffretext in der verschlüsselten Datei gespeichert.
Dennis
1
@KolobCanyon Verschlüsselung ist niemals verlustbehaftet. Per Definition muss der Chiffretext entschlüsselt werden können, um den ursprünglichen Klartext wiederherzustellen. Vergiss nur den Schlüssel nicht.
Dennis
6

Ich habe dafür ein Shell-Skript erstellt. Sie können es auf Mac oder Linux verwenden.

#!/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

Speichern Sie dies einfach in einer Textdatei in der Ausgabe chmod + x-Datei, um sie ausführbar zu machen. benutze danach ./filename --help um Infos zu bekommen.

verfolgen
quelle
2
Durch -aunnötige Verwendung von wird die Ausgabedatei unnötig aufgebläht.
Acumenus
5

Mac OS X bietet die Möglichkeit, verschlüsselte Containerdateien (ähnlich wie Truecrypt) zu erstellen, die optional mit der Menge der darin enthaltenen Daten wachsen können. Verwenden Sie dazu das Festplatten-Dienstprogramm .

In Festplatten - Dienstprogramm , wählen Sie Datei »Neu» Blank Disk Image ... mit einem der spärlichen Bildformate. Wählen Sie AES-128 oder AES-256 als Verschlüsselung.


Über die Befehlszeile ist dieselbe Funktionalität über das hdiutilProgramm verfügbar .

Daniel Beck
quelle
Ein bisschen übertrieben für eine einzelne Textdatei, die für den Befehlszeilenzugriff gedacht ist, nicht wahr? Können Sie die Datei später über Linux et. al.
Wildcard
@Wildcard Möglicherweise (Umfang hat die Tendenz, sich zu ändern); und nein, war aber nicht Teil der Frage.
Daniel Beck
@DanielBeck, Ausgangsbit identisch mit Ans1?
Pacerier