Diese Seite verwandelt einen bereits verschlüsselten Sekuvo-Umschlag in QR-Bilder, die dein Telefon scannen kann. Sie führt keine Verschlüsselung durch und fragt nie nach einem Geheimnis: Den Umschlag erzeugst du auf deinem eigenen Rechner, hier wird nur Chiffretext eingefügt.
Der vorsichtigste Weg bleibt das heruntergeladene aktar.html, geöffnet von deiner eigenen Festplatte. Diese Seite existiert für den Fall, dass du in deinem eigenen Terminal verschlüsselst und nur die QR-Anzeige brauchst.
Das Skript unten baut genau den Umschlag, den die App öffnet (PBKDF2-HMAC-SHA256 · 310.000 Runden + AES-256-GCM). Speichere es als zarf-uret.py und lies es vor dem Ausführen — etwa dreißig Zeilen. Generiere das Passwort, statt es dir auszudenken; der erste Befehl erledigt das.
# macOS / Linux # generate a password (letters+digits, ~119 bits): python3 -c "import secrets,string; print(''.join(secrets.choice(string.ascii_letters+string.digits) for _ in range(20)))" pip3 install cryptography python3 zarf-uret.py "Server SSH" > zarf.json # paste the secret, then Ctrl-D pbcopy < zarf.json # macOS; Linux: xclip -sel clip < zarf.json
# Windows (PowerShell) # generate a password (letters+digits, ~119 bits): python -c "import secrets,string; print(''.join(secrets.choice(string.ascii_letters+string.digits) for _ in range(20)))" pip install cryptography python zarf-uret.py "Server SSH" > zarf.json # paste the secret, then Ctrl-Z + Enter Get-Content zarf.json | Set-Clipboard
#!/usr/bin/env python3
# zarf-uret.py - reads the secret from stdin, writes a Sekuvo envelope to stdout.
# Usage: python3 zarf-uret.py "Title" > zarf.json (paste the secret, then Ctrl-D)
# Requires: pip install cryptography
import sys, os, json, time, base64, hashlib, getpass
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
title = sys.argv[1] if len(sys.argv) > 1 else "Transfer"
secret = sys.stdin.read()
# The app refuses entries above 256 KB; say so here instead of after the scan.
assert len(secret.encode()) <= 256 * 1024, "secret is over 256 KB, the app will not import it"
password = getpass.getpass("Envelope password (ASCII, generated): ")
assert password.isascii() and len(password) >= 8, "ASCII and at least 8 characters"
now = int(time.time() * 1000)
payload = json.dumps({"entries": [{
"type": "NOTE", "title": title,
"createdAt": now, "updatedAt": now, "quick": False,
"data": {"notes": secret},
}]}, ensure_ascii=False)
salt = os.urandom(16)
key = hashlib.pbkdf2_hmac("sha256", password.encode(), salt, 310_000, 32)
iv = os.urandom(12)
blob = iv + AESGCM(key).encrypt(iv, payload.encode(), None)
print(json.dumps({
"app": "vault", "version": 1,
"kdf": {"algo": "PBKDF2WithHmacSHA256", "iterations": 310_000,
"salt": base64.b64encode(salt).decode()},
"cipher": "AES-256-GCM",
"data": base64.b64encode(blob).decode(),
}))
Füge das Geheimnis in die Eingabe des Skripts ein, statt es auf der Kommandozeile zu tippen — so landet es nie in deinem Shell-Verlauf.
Sekuvo → + → Über QR importieren → Bilder scannen → dasselbe Passwort eingeben → Zum Bestehenden hinzufügen.
← Zurück zu sekuvo.com