Secret Redactor

Ein Secret Redactor durchsucht Text, den Sie gleich teilen wollen — einen Log-Auszug, ein Support-Ticket, eine Chat-Nachricht, einen Konfigurations-Dump — und entfernt die darin versteckten Zugangsdaten, bevor jemand anderes sie liest. Fügen Sie Text hier ein oder legen Sie eine Datei ab, und er findet API-Schlüssel von Anbietern, Zugriffstoken, Blöcke privater Schlüssel, JSON Web Tokens, Kartennummern und E-Mail-Adressen, zeigt jeden Treffer maskiert in einer Tabelle und baut eine saubere Kopie, in der jedes Geheimnis durch [REDACTED] ersetzt ist. Alles läuft 100 % in Ihrem Browser: Nichts wird hochgeladen, nichts wird gespeichert, und die Analyse löst keine Netzwerkanfrage aus. Der Begleitartikel, Geheimnisse schwärzen, bevor Sie sie einfügen, erklärt, was Scanner erkennen können und was nicht; für Browser-Aufzeichnungen nutzen Sie den HAR Analyzer, für Konfigurationsdateien den .env Parser.

Zuletzt aktualisiert:

Oder legen Sie eine Textdatei irgendwo in diesem Feld ab. Limit: 2 MB. Die Datei wird nur auf diesem Gerät gelesen und nie hochgeladen.

Wonach der Scanner sucht — und wie er entscheidet

Die meisten Geheimnisse lecken nicht durch Angriffe, sondern durch Hilfsbereitschaft. Jemand fügt ein Log in ein Ticket ein, eine Konfigurationsdatei in einen Chat, einen curl-Befehl in einen Forenbeitrag — und die Zugangsdaten, die zufällig darin steckten, reisen mit, in Systeme, die Text indexieren, weiterleiten und für immer archivieren. Diese Seite ist die Pause vor diesem Einfügen. Tippen oder legen Sie den Text ab, und die Suche läuft beim Tippen: Ein Zählband summiert die Treffer nach Typ, die Vorschau hebt jeden Treffer an Ort und Stelle mit maskiertem Wert hervor, die Treffertabelle listet Typ, maskierte Form und Zeilennummer, und die geschwärzte Kopie unten ersetzt jeden Treffer durch die eine Markierung [REDACTED], bereit zum Kopieren oder als .txt-Datei zum Herunterladen.

Die erste Erkennungsebene ist die Form. Echte Zugangsdaten echter Anbieter haben erkennbare Formen, und der Scanner kennt die wichtigsten: AWS-Zugriffsschlüssel, GitHub-Token in klassischer und feinkörniger Form, geheime und eingeschränkte Stripe-Schlüssel, OpenAI-Projekt- und Generalschlüssel, Anthropic-Schlüssel, Google-API-Schlüssel und Slack-Token. Ein Block eines privaten Schlüssels wird als ein einziger, ganzer Treffer erfasst — von seiner BEGIN- bis zu seiner END-Zeile —, weil das Schwärzen nur eines Teils eines Schlüsselblocks einen benutzbaren Schlüssel übrig lässt. JSON Web Tokens werden an ihrer Drei-Segment-Struktur aus base64url erkannt, und Kartennummern müssen erst die Luhn-Prüfsumme bestehen, bevor sie markiert werden, damit gewöhnliche Bestellnummern und Zeitstempel still bleiben.

Entropie, Platzhalter und die ehrlichen Grenzen

Die zweite Ebene deckt Geheimnisse ohne Anbieterform ab: Zuweisungen wie password = …, api_key: … oder client_secret = …. Ein bloßes Schlüsselwort beweist nichts, also muss der Wert zwei weitere Tore passieren — mindestens zwölf Zeichen und eine Shannon-Entropie von mindestens 3,2 Bit pro Zeichen, die Zufallsschlüssel mühelos bestehen und gewöhnliche Wörter nicht. Platzhalterwerte sind absichtlich ausgenommen: Alles, was example, test, dummy, xxx, your-, placeholder oder changeme enthält, ist Dokumentation, kein Zugangsmittel, und es zu markieren würde Sie nur trainieren, den Scanner zu ignorieren. Wo sich Formen überlappen, gewinnt das spezifische Muster: Ein einer Variable zugewiesener Stripe-Schlüssel wird einmal gemeldet, als Stripe-Schlüssel.

Zwei Treffertypen schützen Menschen statt Systeme. E-Mail-Adressen werden als personenbezogene Daten markiert, denn ein Ticket voller Kundenadressen ist ein Datenschutzvorfall, selbst wenn kein Passwort auftaucht. Kartennummern werden nur markiert, wenn die Ziffern Luhn bestehen, die in jede echte Kartennummer eingebaute Prüfsumme — derselbe Test, der dem Scanner erlaubt, Rechnungsnummern, Sendungscodes und Unix-Zeitstempel zu ignorieren, die nur lang und numerisch aussehen. Auf dem Bildschirm wird jeder Wert auf höchstens seine ersten vier Zeichen maskiert, sodass ein Blick über die Schulter oder ein Screenshot Typ und Ort eines Geheimnisses lernen, aber nie das Geheimnis selbst; kurze Werte zeigen gar nichts. Der volle Wert existiert nur in Ihrem Originaltext, der die Seite nie verlässt.

Nutzen Sie den Redactor als einen Schritt in einer sichereren Teil-Gewohnheit, nicht als Garantie. Schwärzen Sie lokal, teilen Sie die geschwärzte Kopie, und senden Sie das eigentliche Geheimnis — wenn ein Geheimnis wirklich den Besitzer wechseln muss — über einen Secret Manager oder einen ablaufenden Teilen-Link, niemals über dasselbe Ticket oder denselben Chat wie den geschwärzten Text. Wurde ein echtes Zugangsmittel bereits ungeschwärzt irgendwo eingefügt, reicht das Löschen der Nachricht nicht: Kopien, Indizes und Benachrichtigungen können bereits existieren, also rotieren Sie das Zugangsmittel und behandeln Sie das alte als öffentlich. Der Begleitartikel, Geheimnisse schwärzen, bevor Sie sie einfügen, führt den ganzen Ablauf aus; der HAR Analyzer erledigt dieselbe Arbeit für Browser-Aufzeichnungen, und der .env Parser prüft Konfigurationsdateien, bevor Sie sie einchecken.

Die Erkennungsbibliothek, in klaren Worten

AWS-ZugriffsschlüsselAKIA oder ASIA, gefolgt von genau 16 Großbuchstaben oder Ziffern — die Form langlebiger und temporärer AWS-Zugriffsschlüssel-IDs.
GitHub-TokenDie Präfixe ghp_, gho_, ghu_, ghs_ und ghr_ mit mindestens 36 weiteren Zeichen, plus die feinkörnige Form github_pat_.
Stripe-Schlüsselsk_ oder rk_, gefolgt von live_ oder test_ und mindestens 16 alphanumerischen Zeichen — geheime und eingeschränkte Schlüssel, Testmodus eingeschlossen, weil Testschlüssel Kontostruktur und Gewohnheiten verraten.
OpenAI- und Anthropic-Schlüsselsk-proj--Projektschlüssel und generische sk--Schlüssel ab 32 Zeichen zählen als OpenAI; sk-ant--Schlüssel werden als Anthropic gemeldet, ein eigener Typ mit eigenem Rotationsweg.
Google-API-Schlüssel und Slack-TokenAIza, gefolgt von 35 Zeichen, für Google; die Präfixe xoxb, xoxa, xoxp, xoxr und xoxs für Slack-Token für Bots, Apps, Benutzer, Refresh und Sitzungen.
Block privater SchlüsselEin ganzer PEM-Block, von -----BEGIN PRIVATE KEY----- (RSA-, EC-, OpenSSH- und PGP-Varianten eingeschlossen) bis zur passenden END-Zeile, als ein Treffer gemeldet und geschwärzt.
JSON Web TokenDrei durch Punkte getrennte base64url-Segmente, deren erste zwei mit eyJ beginnen — die kodierte Form des JSON-Headers und der Payload, mit der jedes JWT beginnt.
Generische ZuweisungWerte, die Namen wie api_key, secret, token, password, passwd, auth_token, access_token oder client_secret zugewiesen sind, nur markiert, wenn der Wert mindestens 12 Zeichen hat und seine Shannon-Entropie 3,2 erreicht; dokumentierte Platzhalter werden nie markiert.
E-Mail-AdresseGewöhnliche E-Mail-Adressen, als personenbezogene Daten (PII) gemeldet, damit Masseneinfügungen von Kunden- oder Mitarbeiteradressen gefangen werden, bevor sie sich verbreiten.
KartennummerZiffernfolgen von 13 bis 19 Ziffern, Leerzeichen und Bindestriche erlaubt, nur markiert, wenn sie die Luhn-Prüfsumme bestehen, die jede echte Kartennummer erfüllt.
Maskierung und MarkierungAuf dem Bildschirm zeigt ein Wert höchstens seine ersten vier Zeichen plus Auslassungspunkte, und bei Werten bis vier Zeichen gar nichts. In der geschwärzten Kopie wird jeder Treffer zur einen Markierung [REDACTED]; der Typ bleibt in der Treffertabelle sichtbar, nie inline.

Häufige Fragen

Wird mein Text irgendwo hochgeladen oder gespeichert?

Nein. Die Suche läuft auf dieser Seite, auf Ihrem Gerät: Nichts wird hochgeladen, übertragen oder gespeichert, und die Suche stellt keine Netzwerkanfrage. Das ist eine bewusste Designregel — ein Werkzeug, das Sie bitten würde, Text voller Geheimnisse hochzuladen, um die Geheimnisse zu entfernen, wäre Teil des Problems.

Welche Arten von Geheimnissen kann es finden?

Zugangsdaten in Anbieterform — AWS-Zugriffsschlüssel sowie Schlüssel und Token von GitHub, Stripe, OpenAI, Anthropic, Google und Slack — plus ganze Blöcke privater Schlüssel, JSON Web Tokens, hochentropische Werte unter Namen wie password oder api_key, E-Mail-Adressen und Kartennummern, die die Luhn-Prüfsumme bestehen. Die Faktentabelle oben listet jedes Muster in klaren Worten.

Warum hat es ein Geheimnis übersehen, das ich in meinem Text sehe?

Aus drei ehrlichen Gründen. Der Wert kann über Zeilen verteilt oder umgebrochen sein, sodass keine einzelne Form passt. Es kann ein menschliches Passwort mit niedriger Entropie unter einem Namen sein, den die generische Regel nicht kennt. Oder es ist ein Format, das noch kein Muster abdeckt — eine Datenbank-Verbindungszeichenfolge, ein Cookie-Wert, eine URL mit Basic Auth. Der Scanner fängt die üblichen, gut dokumentierten Formen deterministisch; er ist ein Sicherheitsnetz, kein Beweis, dass der Text sauber ist, also überfliegen Sie die Vorschau vor dem Teilen selbst.

Warum hat es etwas markiert, das kein echtes Geheimnis ist?

Meist, weil der Wert ehrlich so geformt ist: ein zufällig aussehender Testwert ohne Platzhalterwort, ein Beispiel-Token aus interner Dokumentation oder ein als Front-End-Beispiel benutztes JWT. Prüfen Sie vor dem Teilen die Treffertabelle — ein Fehlalarm kostet einen Blick, ein übersehener Treffer kostet eine Rotation. Werte mit example, test, dummy, xxx, your-, placeholder oder changeme werden nie markiert, also hält diese Kennzeichnung von Beispielen den Lärm niedrig.

Macht Schwärzen ein Geheimnis sicher, wenn das Original schon geleckt ist?

Nein. Schwärzen schützt die Kopien, die Sie ab jetzt machen; es kann kein Ticket, keine Chat-Nachricht und kein Log zurückholen, das bereits mit dem Geheimnis hinausging. Behandeln Sie jedes Zugangsmittel, das ungeschwärzt in einem geteilten System auftauchte, als öffentlich: Rotieren Sie es beim Anbieter, widerrufen Sie das alte, und teilen Sie erst dann den geschwärzten Text. Der Begleitartikel, Geheimnisse schwärzen, bevor Sie sie einfügen, erklärt die Reihenfolge „zuerst rotieren“ und warum Nachrichtenlöschen nicht reicht.