Baue deine eigenen Verschlüsselungs-Tools mit 50 Zeilen Bash.
Echte Privatsphäre basiert auf Transparenz, nicht auf geheimen Apps oder Blackboxes. Diese Anleitung liefert dir zwei auditierbare Bash-Skripte, um sensible Ordner mit Standard-GPG und AES256 zu verschlüsseln und zu entschlüsseln. Keine Cloud, kein Abo, einfach nur reine Mathematik und Linux.
„Don't trust, verify.“
Wir sagen das über Bitcoin-Nodes. Wir sollten es auch über unsere Sicherheits-Tools sagen.
Viele Menschen verlassen sich auf komplexe Apps mit glänzenden Oberflächen, um ihre Daten zu verstecken. Aber Komplexität ist der Feind der Sicherheit. Jede Zeile Code, die du nicht geschrieben hast (und nicht lesen kannst), ist ein potenzielles Sicherheitsrisiko.
Die robusteste Verschlüsselung kommt oft von Werkzeugen, die seit Jahrzehnten getestet werden: GPG und Tar.
Im Folgenden findest du zwei Skripte, die ich nutze, um Daten zu sichern. Sie verwandeln jeden Ordner in ein verschlüsseltes .tar.gz.gpg-Archiv.
Sie funktionieren auf deinem High-End-Linux-Desktop und sogar auf deinem Smartphone (via Termux).
Warum Skripte nutzen?
- Auditierbarkeit: Du kannst jede Zeile lesen. Keine versteckten Hintertüren.
- Standardisierung: Der Output ist Standard-OpenPGP. Du kannst es auch in 20 Jahren noch entschlüsseln, selbst wenn diese Skripte verloren gehen.
- Geschwindigkeit: Es kombiniert Archivierung, Komprimierung und Verschlüsselung in einem einzigen Datenstrom (Stream).
1. Das Konzept
Wir erfinden das Rad nicht neu. Wir ketten Standard-Tools aneinander:
- Tar: Bündelt Dateien zusammen.
- Gzip: Komprimiert sie.
- GPG (AES256): Verschlüsselt sie symmetrisch.
⚠️ OPSEC-Hinweis
Diese Skripte nutzen symmetrische Verschlüsselung. Die Sicherheit hängt vollständig von der Stärke deines Passworts ab. Nutze ein langes Passwort mit hoher Entropie (Zufälligkeit), das du nirgendwo sonst verwendest.
2. Teil 1: Das Schild (Verschlüsselung)
Speichere diesen Code als Datei namens encrypt-folder.sh.
#!/bin/bash
# 🔒 Unified Encryption Script
# Output: ~/Encrypted_<Folder>.tar.gz.gpg (+ .sha256)
set -Eeuo pipefail
umask 077
read -p "📁 Enter folder name to encrypt: " FOLDERNAME
if [ -z "${FOLDERNAME:-}" ]; then
echo "❌ No name entered. Aborting."
exit 1
fi
SRC="$HOME/$FOLDERNAME"
if [ ! -d "$SRC" ]; then
echo "❌ Folder not found: $SRC"
exit 1
fi
# Determine output path (Desktop vs. Termux)
if [ -d "$HOME/storage/downloads" ]; then
# Termux (Android)
OUTDIR="$HOME/storage/downloads"
else
# Linux Desktop
OUTDIR="$HOME"
fi
TARGET="$OUTDIR/Encrypted_${FOLDERNAME}.tar.gz.gpg"
if [ -f "$TARGET" ]; then
TARGET="$OUTDIR/Encrypted_${FOLDERNAME}_$(date +%F_%H%M).tar.gz.gpg"
fi
echo "📦 Packing & Encrypting → $TARGET"
# Stream: Tar -> Gzip -> GPG (AES256)
# No unencrypted temporary files are created on disk.
tar -C "$HOME" -cf - -- "$FOLDERNAME" \
| gzip -9 \
| gpg --symmetric --cipher-algo AES256 --compress-level 0 --no-symkey-cache \
-o "$TARGET"
# Create checksum
( cd "$(dirname "$TARGET")" && sha256sum "$(basename "$TARGET")" > "$(basename "$TARGET").sha256" )
# Notify (Linux only)
if command -v notify-send >/dev/null 2>&1; then
notify-send "✅ Encrypted" "Archive: $(basename "$TARGET")"
fi
echo "✅ Done: $(basename "$TARGET")"
echo "🧩 SHA256: $(basename "$TARGET").sha256"
3. Teil 2: Der Schlüssel (Entschlüsselung)
Speichere diesen Code als Datei namens decrypt-folder.sh.
#!/usr/bin/env bash
# decrypt-folder.sh – Decrypts <NAME>[.tar.gz].gpg from ~ or ~/Downloads.
# Features: SHA256 check, Loopback fallback, Auto-Extract (E), List (L), Default: Write TAR (T)
set -Eeuo pipefail
umask 077
export GPG_TTY="${GPG_TTY:-$(tty 2>/dev/null || true)}"
die(){ printf "❌ %s\n" "$*" >&2; exit 1; }
# --- Input: Name or path, with or without .gpg ---
NAME="${1-}"
if [ -z "$NAME" ]; then
printf "Enter the filename of the encrypted archive (without .gpg): "
IFS= read -r NAME
fi
[ -n "$NAME" ] || die "No name provided."
# Strip .gpg if user provided it
NAME="${NAME%.gpg}"
# Find candidate paths for the .gpg file
CAND=(
"$HOME/${NAME}.gpg"
"$HOME/Downloads/${NAME}.gpg"
"$PWD/${NAME}.gpg"
)
INPUT=""
for p in "${CAND[@]}"; do
[ -f "$p" ] && INPUT="$p" && break
done
[ -n "$INPUT" ] || die "Not found: ${NAME}.gpg (checked ~, ~/Downloads, and PWD)."
# Destinations
OUT_TAR="$HOME/${NAME}" # e.g. ~/Encrypted_Data.tar.gz
STAMP="$(date +%F_%H%M%S)"
RESTORE="$HOME/Restore/${NAME}_${STAMP}"
mkdir -p "$HOME/Restore"
# Optional SHA-Check (path-independent comparison)
if [ -f "${INPUT}.sha256" ]; then
echo "🔎 Checking SHA256 ..."
exp="$(awk '{print $1}' "${INPUT}.sha256")"
act="$(sha256sum "$INPUT" | awk '{print $1}')"
if [ "$exp" = "$act" ]; then
echo "✅ SHA256 OK"
else
echo "⚠️ SHA256 Mismatch! Proceed with caution."
fi
fi
# Select Mode
printf "Mode: [T]AR Write (Default) / [E]xtract / [L]ist: "
read -r -n1 MODE || true; echo
MODE=${MODE:-T}
# Helper Functions (with Loopback Fallback for stability)
decrypt_to_tar() {
gpg --decrypt "$INPUT" | tar -xz -C "$RESTORE" && return 0
echo "⚠️ Standard input failed. Attempting loopback mode..."
gpg --pinentry-mode loopback --decrypt "$INPUT" | tar -xz -C "$RESTORE"
}
decrypt_to_file() {
gpg --output "$OUT_TAR" --decrypt "$INPUT" && return 0
echo "⚠️ Standard input failed. Attempting loopback mode..."
gpg --pinentry-mode loopback --output "$OUT_TAR" --decrypt "$INPUT"
}
case "$MODE" in
L|l)
gpg --decrypt "$INPUT" | tar -tz || \
gpg --pinentry-mode loopback --decrypt "$INPUT" | tar -tz
;;
E|e)
mkdir -p "$RESTORE"
echo "📦 Extracting to: $RESTORE"
decrypt_to_tar
if command -v notify-send >/dev/null 2>&1; then
notify-send "✅ Extracted" "$RESTORE"
fi
echo "✅ Finished: $RESTORE"
;;
T|t|*)
# Default: Write decrypted .tar.gz to HOME
[ -f "$OUT_TAR" ] && rm -f "$OUT_TAR"
echo "📝 Writing: $OUT_TAR"
decrypt_to_file
if command -v notify-send >/dev/null 2>&1; then
notify-send "✅ Decrypted" "$OUT_TAR"
fi
echo "✅ Finished: $OUT_TAR"
;;
esac
🧰 Tools für echte Eigentümer (Werbung/Affiliate)
Wenn du Aktien und Bitcoin möglichst eigenverantwortlich halten willst, nutze nicht nur dein Bankdepot:
-
🇨🇭 Investieren mit Swissquote:
Ich nutze Swissquote in der Schweiz – dort kannst du saubere Namensaktien halten und hast keine deutsche Bank dazwischen.
👉 https://alien-investor.org/swissquote -
📊 US-Aktien über IBKR:
Für viele internationale Titel bietet sich Interactive Brokers als Zugang an – insbesondere in Kombination mit DRS/Transfer Agenten.
👉 https://alien-investor.org/interactive-brokers -
💥 Bitcoin kaufen in Europa – 21bitcoin:
Bitcoin-only App aus Europa, ideal für DCA und regelmäßiges sats stapeln – ohne Shitcoins.
Mit dem Code ALIENINVESTOR erhältst du dauerhaft 0,2 Prozentpunkte Gebührenreduktion auf Sofort- und Sparplankäufe.
👉 https://alien-investor.org/21bitcoin -
₿ Bitcoin in Selbstverwahrung:
Hardware-Wallet statt Börsenkonto. Ich nutze die BitBox – es gibt die klassische BitBox02 und die neue BitBox für iPhone (Nova).
👉 https://alien-investor.org/bitbox -
🛡️ Privacy & Mail:
Für E-Mail, VPN und Cloud nutze ich Proton – datensparsam und ohne Big-Tech-Abhängigkeit.
👉 https://alien-investor.org/proton
Hinweis: Bei einigen Links handelt es sich um Affiliate-Links. Wenn du sie nutzt, unterstützt du meine Arbeit, ohne dass es dich mehr kostet. Danke! 👽