67 lines
2.0 KiB
Markdown
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
|
|
|