API-Key- und Secret-Scanner
Prüfen Sie Logs, Code oder eine .env-Datei, bevor Sie sie in ChatGPT einfügen: Schlüssel wie sk-proj-… (OpenAI), AKIA… (AWS), ghp_… (GitHub), AIza… (Google), xoxb-… (Slack), sk_live_… (Stripe), JWTs, private PEM-Schlüssel und Werte wie DB_PASSWORD=… werden markiert und durch [REDACTED_…] ersetzt. Zufällig wirkende Zeichenketten ab 24 Zeichen mit mindestens 4,0 Bit Shannon-Entropie pro Zeichen werden ebenfalls markiert. Nichts verlässt Ihren Browser.
So funktioniert’s
- Fügen Sie das Log, den Code, die Konfigurationsdatei oder den Prompt ein, den Sie an einen KI-Chat schicken wollen. Die Prüfung läuft schon beim Tippen.
- Sehen Sie sich die Markierungen und die Liste mit Zeilennummern an. Rot sind bekannte Schlüsselformate, blau zufällig wirkende Zeichenketten, die Secrets sein könnten.
- Kopieren Sie den geschwärzten Text. Mit "Erste 4 Zeichen behalten" bleibt erkennbar, um welchen Schlüssel es ging, etwa ghp_****.
Berechnung
Schlüssel bekannter Anbieter werden an festem Präfix und fester Länge erkannt: OpenAI sk- und sk-proj-, Anthropic sk-ant-, AWS-Zugriffsschlüssel (AKIA oder ASIA plus 16 Großbuchstaben oder Ziffern), GitHub ghp_, gho_ und github_pat_, Google AIza plus 35 Zeichen, Slack xoxb- und xoxp-, Stripe sk_live_, pk_live_ und rk_, JWTs (drei base64url-Teile, beginnend mit eyJ) sowie -----BEGIN … PRIVATE KEY-----Blöcke.
Werte werden auch am Namen erkannt. In .env- und Konfigurationsdateien wird alles geschwärzt, was einem Namen mit SECRET, TOKEN, PASSWORD, API_KEY, ACCESS_KEY oder PRIVATE_KEY zugewiesen ist, außerdem AWS-Secret-Keys (40 Zeichen nach aws_secret_access_key) und das Passwort in Verbindungs-URLs wie postgres://user:passwort@host. Platzhalter wie changeme, <your-key>, ${VAR} und **** werden ignoriert.
Zeichenketten ohne bekanntes Format werden mit der Shannon-Entropie bewertet: H = -Σ p(c) log2 p(c). Markiert wird ein Token ab 24 Zeichen, das Groß- und Kleinbuchstaben sowie Ziffern mischt und mindestens 4,0 Bit pro Zeichen erreicht. Ein zufälliger 32-Zeichen-Schlüssel liegt meist bei 4,5 bis 5. Rein hexadezimale Ketten wie Commit-Hashes und UUIDs werden übersprungen.
Treffen zwei Regeln dieselbe Stelle, gewinnt die genauere: Der Schlüssel in OPENAI_API_KEY=… wird als OpenAI-Key angezeigt, nicht als allgemeiner .env-Wert. Alles läuft auf dieser Seite. Der Text wird nicht hochgeladen, nicht gespeichert und nie in die Adresse geschrieben.
Erkannte Formate
| Anbieter | Aussehen |
|---|---|
| OpenAI | sk-… , sk-proj-… |
| Anthropic | sk-ant-… |
| AWS | AKIA… (20 Zeichen) + Secret mit 40 Zeichen |
| GitHub | ghp_… , github_pat_… |
| Google API | AIza… (39 Zeichen) |
| Slack | xoxb-… , xoxp-… , hooks.slack.com URL |
| Stripe | sk_live_… , pk_live_… , rk_… |
| JWT | eyJ….eyJ….… |
| Privater Schlüssel | -----BEGIN … PRIVATE KEY----- |
| Verbindungs-URL | scheme://user:password@host |
| .env-Wert | NAME_MIT_SECRET/TOKEN/PASSWORD=… |
Häufige Fragen
Wird mein Text irgendwohin gesendet?
Nein. Prüfung und Schwärzung laufen im Browser. Der Text wird nicht hochgeladen, nicht im lokalen Speicher abgelegt und nicht in die URL geschrieben, es gibt also nichts, was versehentlich geteilt werden könnte. Beim Verlassen der Seite wird das Feld geleert.
Ich habe schon einen Schlüssel in ChatGPT eingefügt. Was jetzt?
Tauschen Sie ihn aus. Widerrufen Sie den Schlüssel im Dashboard des Anbieters und erzeugen Sie einen neuen, auch wenn der Chat gelöscht ist. Je nach Einstellung werden Chats zur Missbrauchsprüfung aufbewahrt oder fürs Training genutzt. Ein einmal offengelegter Schlüssel gilt als kompromittiert.
Warum wird eine harmlose Zeichenkette als Secret markiert?
Die Entropieprüfung markiert lange, zufällig wirkende Ketten, und manche harmlosen Werte sehen so aus: Build-IDs, Base64-Bilder, signierte URLs. Blaue Markierungen sind Vermutungen. Schalten Sie "Zufällige Zeichenketten markieren" aus, um nur bekannte Formate und benannte Werte zu sehen.
Was kann der Scanner übersehen?
Kurze oder selbst ausgedachte Passwörter mitten im Satz, namenlose Secrets mit wenig Zufall, Schlüssel von Anbietern ohne festes Präfix und Werte, die über mehrere Zeilen verteilt sind. Lesen Sie das Ergebnis vor dem Senden. Der Scan senkt das Risiko, er beweist nicht, dass der Text sauber ist.
Sind die Beispielschlüssel echt?
Nein. Das Beispiel nutzt die Musterschlüssel aus der AWS-Dokumentation, das öffentliche Beispiel-Token von jwt.io und ausgedachte Zeichenketten. Sie haben die richtige Form, öffnen aber nichts.