diff --git a/backup_restore.php b/backup_restore.php
new file mode 100644
index 0000000..85d2900
--- /dev/null
+++ b/backup_restore.php
@@ -0,0 +1,417 @@
+
+
+
+
+
+ Passwortschutz
+
+
+
+
+
+
Passwortschutz
+
+
+
+
+
+
+
+
+
+
+
+';
+ exit; // Die Ausführung hier stoppen, damit der Rest der Seite nicht angezeigt wird, bis das Passwort korrekt eingegeben wurde
+}
+
+// Datenbankverbindung herstellen
+include_once 'config/config.php';
+include_once 'log.php'; // Logdatei einbinden
+
+// Backup durchführen und direkt verschlüsseln
+if (isset($_POST['backup'])) {
+ $timestamp = date('Y-m-d_H-i-s'); // Eindeutiger Zeitstempel für die Dateinamen
+ $backup_file = "backup/backup_$timestamp.sql"; // Backup-Datei im "backup/"-Ordner speichern
+ $command = "mysqldump -u $username -p$password $database > $backup_file";
+ exec($command);
+
+ // Backup erfolgreich erstellt
+ if (file_exists($backup_file)) {
+ // Backup-Datei verschlüsseln
+ $encryption_key = "2Tj&wuWCUeMrSD%tWS%2fv&vDQdFTeUQ"; // Geheimen Schlüssel für die Verschlüsselung
+ $input_file = $backup_file; // Backup-Datei, die verschlüsselt werden soll
+ $output_file = "backup/encrypted_backup_$timestamp.txt"; // Verschlüsselte Ausgabedatei
+
+ // Verschlüsselungsalgorithmus und Modus (z.B. AES-256-CBC)
+ $encryption_algorithm = 'aes-256-cbc';
+
+ // Initialisierungsvektor für die Verschlüsselung (zufällig generieren oder festlegen)
+ $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($encryption_algorithm));
+
+ // Verschlüsselung durchführen
+ if ($encrypted_data = openssl_encrypt(file_get_contents($input_file), $encryption_algorithm, $encryption_key, 0, $iv)) {
+ // Initialisierungsvektor (IV) der verschlüsselten Datei hinzufügen
+ $encrypted_data_with_iv = $iv . $encrypted_data;
+
+ // Verschlüsselte Daten in Ausgabedatei schreiben
+ file_put_contents($output_file, $encrypted_data_with_iv);
+
+ // Erfolgreiche Meldung mit Download-Link anzeigen
+ $download_button = "Download Backup";
+ echo "";
+
+ // Ereignis protokollieren
+ logEvent('Backup erstellt und verschlüsselt', 'Backup', "Backup-Datei: $backup_file");
+ } else {
+ echo "Fehler beim Erstellen und Verschlüsseln des Backups.";
+ }
+ } else {
+ echo "Fehler beim Erstellen des Backups.";
+ }
+}
+
+// Wiederherstellung durchführen
+if (isset($_POST['restore'])) {
+ if (isset($_FILES['restore_file'])) {
+ $restore_file = $_FILES['restore_file']['tmp_name'];
+
+ // Backup-Datei entschlüsseln, bevor die Wiederherstellung durchgeführt wird
+ $encryption_key = "2Tj&wuWCUeMrSD%tWS%2fv&vDQdFTeUQ"; // Geheimer Schlüssel für die Verschlüsselung
+ $encryption_algorithm = 'aes-256-cbc';
+ $iv_size = openssl_cipher_iv_length($encryption_algorithm);
+ $encrypted_data_with_iv = file_get_contents($restore_file);
+ $iv = substr($encrypted_data_with_iv, 0, $iv_size);
+ $encrypted_data = substr($encrypted_data_with_iv, $iv_size);
+ $restored_data = openssl_decrypt($encrypted_data, $encryption_algorithm, $encryption_key, 0, $iv);
+
+ // Temporäre Datei für die Wiederherstellung erstellen
+ $temp_restore_file = 'temp_restore.sql';
+ file_put_contents($temp_restore_file, $restored_data);
+
+ // Wiederherstellung durchführen
+ $command = "mysql -u $username -p$password $database < $temp_restore_file";
+ exec($command);
+ echo "";
+
+ // Ereignis protokollieren
+ logEvent('Wiederherstellung durchgeführt', 'Wiederherstellung', "Wiederhergestellte Datei: $restore_file");
+
+ // Temporäre Datei löschen
+ unlink($temp_restore_file);
+ } else {
+ echo "Datei für die Wiederherstellung nicht hochgeladen.";
+ }
+}
+
+// Wiederherstellung aus ausgewähltem Backup durchführen
+if (isset($_POST['restore_from_selected'])) {
+ $selected_backup = $_POST['selected_backup'];
+
+ // Wiederherstellung durchführen
+ $command = "mysql -u $username -p$password $database < $selected_backup";
+ exec($command);
+ echo "";
+
+ // Ereignis protokollieren
+ logEvent('Wiederherstellung ausgewähltes Backup durchgeführt', 'Wiederherstellung', "Ausgewählte Backup-Datei: $selected_backup");
+}
+
+// Liste der letzten 10 Backups generieren
+$backup_files = glob('backup/encrypted_backup_*.txt'); // Nur nach verschlüsselten Backups suchen
+$backup_files = array_slice($backup_files, -10); // Die letzten 10 Backups auswählen
+
+?>
+
+
+
+
+
+
+
+ Backup und Wiederherstellung
+
+
+
+
+
+
+
Backup und Wiederherstellung
+
+
Backup erstellen
+
+
+
+
+
Wiederherstellung durchführen
+
+
+
+
Letzte 10 verschlüsselte Backups
+
+
+
+
+