Files
harheimertc/scripts/README-re-encrypt.md

67 lines
2.0 KiB
Markdown

# Daten-Neuverschlüsselung
Dieses Script verschlüsselt alle verschlüsselten Daten mit einem neuen Schlüssel neu.
## Verwendung
### Voraussetzungen
1. Stelle sicher, dass `ENCRYPTION_KEY` in der `.env` Datei gesetzt ist:
```bash
ENCRYPTION_KEY=dein-neuer-sicherer-schlüssel-hier
```
2. Optional: Wenn du einen spezifischen alten Schlüssel verwendest (nicht den Standard), kannst du ihn angeben:
```bash
node scripts/re-encrypt-data.js --old-key="dein-alter-schlüssel"
```
### Ausführung
```bash
node scripts/re-encrypt-data.js
```
## Was wird neu verschlüsselt?
Das Script verarbeitet folgende Dateien:
1. **`server/data/users.json`** - Benutzerdaten
2. **`server/data/members.json`** - Mitgliederdaten
3. **`server/data/membership-applications/*.json`** - Mitgliedschaftsanträge (wenn sie ein `encryptedData` Feld enthalten)
4. **`server/data/membership-applications/*.data`** - Verschlüsselte Antragsdaten
## Sicherheit
- **Automatische Backups**: Vor jeder Änderung werden Backups im Verzeichnis `backups/re-encrypt-<timestamp>/` erstellt
- **Mehrere Schlüssel**: Das Script versucht automatisch verschiedene alte Standard-Schlüssel:
- `default-key-change-in-production`
- `local_development_encryption_key_change_in_production`
- Ein optional angegebener `--old-key` Parameter
## Beispiel
```bash
# Standard-Ausführung (verwendet Standard-Entwicklungsschlüssel)
node scripts/re-encrypt-data.js
# Mit spezifischem altem Schlüssel
node scripts/re-encrypt-data.js --old-key="mein-alter-produktions-schlüssel"
```
## Fehlerbehandlung
Falls die Entschlüsselung mit allen verfügbaren Schlüsseln fehlschlägt:
- Das Script bricht ab
- Alle Backups bleiben erhalten
- Du kannst die Dateien manuell aus den Backups wiederherstellen
## Wichtig
⚠️ **WICHTIG**: Stelle sicher, dass:
- Die `.env` Datei den neuen `ENCRYPTION_KEY` enthält
- Du ein Backup der Daten hast (wird automatisch erstellt)
- Der Server während der Ausführung nicht läuft
- Du nach der Ausführung testest, ob alles funktioniert