Ich möchte eine Datei mit AES-256 verschlüsseln. Wie kann ich das schnell und einfach tun und wie kann ich - oder jemand anderes - es wieder entschlüsseln?
Ich möchte eine Datei mit AES-256 verschlüsseln. Wie kann ich das schnell und einfach tun und wie kann ich - oder jemand anderes - es wieder entschlüsseln?
Antworten:
Leider gibt es keine einfache Lösung, um Ihre Sachen zu sichern. Denken Sie an Ihren Anwendungsfall, vielleicht ist etwas anderes als einfaches AES besser geeignet.
Wenn Sie eine sehr einfache plattformunabhängige Verschlüsselung wünschen, können Sie openssl verwenden .
Wenn Sie noch openssl verwenden möchten:
Verschlüsselung:
openssl aes-256-cbc -in attack-plan.txt -out message.enc
Entschlüsselung:
openssl aes-256-cbc -d -in message.enc -out plain-text.txt
Sie können mit base64
openssl die Nachricht verschlüsseln, indem Sie -a
sowohl die Verschlüsselung als auch die Entschlüsselung aktivieren . Auf diese Weise können Sie beispielsweise den Chiffretext in eine E-Mail-Nachricht einfügen. Es wird so aussehen:
stefano:~$ openssl aes-256-cbc -in attack-plan.txt -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX192dXI7yHGs/4Ed+xEC3ejXFINKO6Hufnc=
Beachten Sie, dass Sie zwischen verschiedenen Chiffren und Betriebsarten wählen können. Für den normalen Gebrauch empfehle ich aes 256 im CBC-Modus. Dies sind die verfügbaren Verschlüsselungsmodi (nur mit AES):
aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb
Siehe auch:
Bitte beachten Sie:
OpenSSL wird Sie nach einem Passwort fragen. Dies ist kein Verschlüsselungsschlüssel, er ist nicht auf 32 Bytes begrenzt! Wenn Sie Dateien mit einer anderen Person übertragen möchten, sollte Ihr gemeinsames Geheimnis sehr stark sein. Auf dieser Website können Sie sich ein Bild davon machen, wie gut Ihr Passwort ist:
Warnung: Ich habe überprüft, dass diese Sites Ihr Passwort nicht an den Server senden, aber das kann sich jederzeit ändern. Verwenden Sie diese Sites mit dev tools / inspector und überprüfen Sie, ob sie etwas senden, bevor Sie Ihr sicheres Passwort eingeben.
/usr/bin/openssl enc -aes-256-cbc -a -salt -in $1 -out ${1}.enc
mit dem Gegenteil, wie Sie es erwarten würden.
openssl
Befehlszeilentool meist ein Proof-of-Concept zum Testen der OpenSSL-Bibliothek. Die richtige Antwort auf diese Frage ist entweder GPG oder ein Archivierungsprogramm wie 7z .
openssl enc
das eigentlich nicht so sicher ist, wenn man ein schwaches Passwort hat. Früher habe ich eine bestimmte Verwendung von empfohlen openssl enc
, jetzt empfehle ich die Verwendung, gpg
da eine KDF besser verwendet wird. Siehe diese Antwort .
Ich benutze gerne den gpg
Befehl:
Verschlüsseln:
gpg --cipher-algo AES256 --symmetric filename.tar.gz
Stenografie:
gpg --cipher-algo AES256 -c filename.tar.gz
Dies wird nach einer Passphrase fragen.
Entschlüsseln:
gpg --output filename.tar.gz --decrypt filename.tar.gz.gpg
Stenografie:
gpg -o filename.tar.gz -d filename.tar.gz.gpg
Sie können auch hinzufügen , cipher-algo AES256
um ~/.gnupg/gpg.conf
die Standardeinstellung zu machen AES256. (Laut Manpage ist es CAST5 )
AES
(dh AES-128) verwenden. AES-128 ist etwas schneller und nicht weniger sicher.
gpg
das Passwort zwischengespeichert wird?
7z (wenn die Kennwortoption verwendet wird) verwendet eine 256-Bit-AES-Verschlüsselung (mit SHA256- Key-Stretching ).
Installieren Sie es ( p7zip-full
), klicken Sie mit der rechten Maustaste auf eine Datei oder ein Verzeichnis, das Sie verschlüsseln möchten, und wählen Sie Komprimieren , .7z und Andere Optionen / Kennwort .
Klicken Sie zum Entschlüsseln mit der rechten Maustaste auf die .7z- Datei und wählen Sie Hier extrahieren .
Die verlinkte Website enthält ein Open-Source-256-Bit-AES-Ver- / Entschlüsselungstool und ist plattformübergreifend - MacOs, Windows, Linux und andere über Java.
Verschlüsseln: aescrypt -e <file>
Entschlüsseln: aescrypt -d <file>
Sie können Ihren Basisordner mit der folgenden Syntax sichern und verschlüsseln:
tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes
Laden Sie den Quellcode herunter und extrahieren Sie ihn
make
sudo make install
Laden Sie die Binärdateien oder den Quellcode von der Website herunter.
Viele der Vorschläge, die ich gemacht hätte, wurden bereits in diesem Thread veröffentlicht. Grundsätzlich ist openssl der einfachste Weg, um eine Datei oder ein Skript zu verschlüsseln. Ich warne jedoch davor, AES-256 zu verwenden, nur weil es auf einigen Plattformen nicht in allen Versionen von openssl verfügbar ist. Die meisten neueren Betriebssysteme ... zB Linux haben es. Andere wie AIX 5.3 tun dies jedoch nicht (ich denke auch HP-UX). Wenn Sie beabsichtigen, Ihre Datei oder Ihr Skript plattformübergreifend zu verwenden, empfehle ich dringend die Verwendung von AES-128, da dies überall verfügbar ist.
Wie kann eine Datei mit AES-128 "schnell und einfach" verschlüsselt werden?
Eine Site wie www.ShellScrypt.com verwendet sehr intensiv openssl AES-128, um Shell-Skripte zu verschlüsseln, und macht dann die verschlüsselten Kopien der Skripte ausführbar. Alles, was Sie tun müssen, ist das Skript in die Site einzufügen, und eine Zip-Datei wird für Sie generiert. Diese ZIP-Datei enthält die verschlüsselte (und ausführbare) Version Ihrer Datei, wenn es sich um ein Skript handelt. Auf diese Weise können Sie eine Datei / ein Skript " einfach " und " bequem " verschlüsseln, ohne die Paket- oder Modulanforderungen auf jedem System erfüllen zu müssen, auf dem Sie das Skript verwenden möchten, oder mehrere komplexe und verwirrende Beschwörungsformeln von openssl-Befehlen ausführen zu müssen.
Unten ist ein grundlegender Befehl zum Ver- und Entschlüsseln von openssl dargestellt , der AES-128 verwendet:
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
test@test-VirtualBox:~$
test@test-VirtualBox:~$
Als Ergänzung zu Stefano Palazzos Antwort habe ich eine kleine Bash-Funktion erstellt, die ähnlich wie der Befehl base64 funktioniert.
Es wird eine Datei aes256 verschlüsseln und dann base64 verschlüsseln. Beim umgekehrten Vorgang dekodiert, entschlüsselt und spuckt base64 den ursprünglichen Klartext aus.
aes256() {
decodeMe=""
isPipe="$([ ! -t 0 ] && echo "true" || echo "false")"
if [ "$1" = '-d' ] || [ "$1" = '--decode' ]; then
decodeMe="-d"
shift
fi
if [ "$isPipe" = "true" ]; then
read input
printf '%s\n' "$input" | openssl aes-256-cbc -a $decodeMe
exitCode="$?"
else
openssl aes-256-cbc -a $decodeMe -in "$*"
exitCode="$?"
fi
unset isPipe decodeMe input
return "$exitCode"
}
Verwendungszweck:
echo "my string" | aes256
# enter aes-256-cbc encryption password
# Returns: U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=
echo "U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=" | aes256 -d
# enter aes-256-cbc decryption password
# Returns: my string
aes256 file.plain > file.crypt
# enter aes-256-cbc encryption password
aes256 -d file.crypt
# enter aes-256-cbc decryption password
# Spits out original unencrypted file.
openssl aes-256-cbc
ist kürzer alsopenssl enc -aes-256-cbc
und funktioniert auch. Die Handbuchseite dazu ist durch Ausführen verfügbarman enc
. Niemalsecb
für Daten verwenden, mit denen nicht gemildert werden soll, immer verwendencbc
.-salt
ist redundant, da es standardmäßig ist. Wenn Sie nicht angeben, wird-out filename
die Ausgabe in die Standardausgabe geschrieben. Dies ist hilfreich, wenn Sie nur Daten analysieren, aber nicht auf die Festplatte schreiben müssen. Der nächste Befehl zeigt die Linie cound für Klar-:openssl aes-256-cbc -d -in filename | wc -l
. ( eine andere Anwendung, eine Datei zu lesen:openssl aes-256-cbc -d -in filename | less
)