Lizenzkey Generator
Dieser Commit ist enthalten in:
69
JOURNAL.md
69
JOURNAL.md
@@ -896,4 +896,71 @@ Die Session-Daten werden erst gefüllt, wenn der License Server API implementier
|
||||
- Code ist vollständig implementiert und getestet
|
||||
- CAPTCHA wird nach 2 Fehlversuchen angezeigt
|
||||
- Ohne konfigurierte Keys wird CAPTCHA-Prüfung übersprungen
|
||||
- Für Produktion müssen nur die Keys in .env eingetragen werden
|
||||
- Für Produktion müssen nur die Keys in .env eingetragen werden
|
||||
|
||||
### 2025-06-07 - License Key Generator implementiert
|
||||
- Automatische Generierung von Lizenzschlüsseln mit definiertem Format
|
||||
|
||||
**Implementiertes Format:**
|
||||
`AF-YYYYMMFT-XXXX-YYYY-ZZZZ`
|
||||
- **AF** = Account Factory (feste Produktkennung)
|
||||
- **YYYY** = Jahr (z.B. 2025)
|
||||
- **MM** = Monat (z.B. 06)
|
||||
- **FT** = Lizenztyp (F=Fullversion, T=Testversion)
|
||||
- **XXXX-YYYY-ZZZZ** = Zufällige alphanumerische Zeichen (ohne verwirrende wie 0/O, 1/I/l)
|
||||
|
||||
**Beispiele:**
|
||||
- Vollversion: `AF-202506F-A7K9-M3P2-X8R4`
|
||||
- Testversion: `AF-202512T-B2N5-K8L3-Q9W7`
|
||||
|
||||
**Implementierte Features:**
|
||||
|
||||
1. **Backend-Funktionen (app.py):**
|
||||
- `generate_license_key()` - Generiert Keys mit kryptografisch sicherem Zufallsgenerator
|
||||
- `validate_license_key()` - Validiert das Key-Format mit Regex
|
||||
- Verwendet `secrets` statt `random` für Sicherheit
|
||||
- Erlaubte Zeichen: ABCDEFGHJKLMNPQRSTUVWXYZ23456789 (ohne verwirrende)
|
||||
|
||||
2. **API-Endpoint:**
|
||||
- POST `/api/generate-license-key` - JSON API für Key-Generierung
|
||||
- Prüft auf Duplikate in der Datenbank (max. 10 Versuche)
|
||||
- Audit-Log-Eintrag bei jeder Generierung
|
||||
- Login-Required geschützt
|
||||
|
||||
3. **Frontend-Verbesserungen (index.html):**
|
||||
- Generate-Button neben License Key Input
|
||||
- Placeholder und Pattern-Attribut für Format-Hinweis
|
||||
- Auto-Uppercase bei manueller Eingabe
|
||||
- Visuelles Feedback bei erfolgreicher Generierung
|
||||
- Format-Hinweis unter dem Eingabefeld
|
||||
|
||||
4. **JavaScript-Features:**
|
||||
- AJAX-basierte Key-Generierung ohne Seiten-Reload
|
||||
- Automatische Prüfung bei Lizenztyp-Änderung
|
||||
- Ladeindikator während der Generierung
|
||||
- Fehlerbehandlung mit Benutzer-Feedback
|
||||
- Standard-Datum-Einstellungen (heute + 1 Jahr)
|
||||
|
||||
5. **Validierung:**
|
||||
- Server-seitige Format-Validierung beim Speichern
|
||||
- Flash-Message bei ungültigem Format
|
||||
- Automatische Großschreibung des Keys
|
||||
- Pattern-Validierung im HTML-Formular
|
||||
|
||||
6. **Weitere Fixes:**
|
||||
- Form Action von "/" auf "/create" korrigiert
|
||||
- Flash-Messages mit Bootstrap Toasts implementiert
|
||||
- GENERATE_KEY Aktion zum Audit-Log hinzugefügt (Farbe: #20c997)
|
||||
|
||||
**Technische Details:**
|
||||
- Keine vorhersagbaren Muster durch `secrets.choice()`
|
||||
- Datum im Key zeigt Erstellungszeitpunkt
|
||||
- Lizenztyp direkt im Key erkennbar
|
||||
- Kollisionsprüfung gegen Datenbank
|
||||
|
||||
**Status:**
|
||||
- ✅ Backend-Generierung vollständig implementiert
|
||||
- ✅ Frontend mit Generate-Button und JavaScript
|
||||
- ✅ Validierung und Fehlerbehandlung
|
||||
- ✅ Audit-Log-Integration
|
||||
- ✅ Form-Action-Bug behoben
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren