Masqueur de secrets
Un masqueur de secrets analyse le texte que vous êtes sur le point de partager — un extrait de journal, un ticket de support, un message de discussion, un dump de configuration — et en retire les identifiants cachés avant que quiconque d'autre les lise. Collez du texte ou déposez un fichier ici, et il trouvera les clés API des fournisseurs, les jetons d'accès, les blocs de clé privée, les JSON Web Tokens, les numéros de carte et les adresses e-mail, affichera chaque résultat masqué dans un tableau et construira une copie propre où chaque secret est remplacé par [REDACTED]. Tout fonctionne à 100 % dans votre navigateur : rien n'est téléversé, rien n'est stocké, et analyser du texte ne déclenche aucune requête réseau. Le guide compagnon, masquez vos secrets avant de coller, explique ce que les scanners peuvent et ne peuvent pas détecter ; pour les captures du navigateur, utilisez l'analyseur HAR, et pour les fichiers de configuration l'analyseur .env.
Dernière mise à jour:
Ou déposez un fichier texte n'importe où dans ce cadre. Limite : 2 Mo. Le fichier est lu uniquement sur cet appareil et n'est jamais téléversé.
Résultats de l'analyse
Aperçu surligné (masqué)
Résultats
Ce que le scanner cherche — et comment il décide
La plupart des secrets ne fuient pas par des attaques, mais par envie d'aider. Quelqu'un colle un journal dans un ticket, un fichier de configuration dans une discussion, une commande curl dans un forum — et l'identifiant qui se trouvait par hasard dedans voyage avec, vers des systèmes qui indexent, transfèrent et archivent le texte pour toujours. Cette page est la pause avant ce collage. Tapez ou déposez le texte, et l'analyse court pendant que vous tapez : une bande de compteurs totalise les résultats par type, l'aperçu surligne chaque résultat à sa place avec sa valeur masquée, le tableau des résultats liste le type, la forme masquée et le numéro de ligne, et la copie masquée ci-dessous remplace chaque résultat par le marqueur unique [REDACTED], prête à copier ou à télécharger comme fichier .txt.
La première couche de détection est la forme. Les vrais identifiants de vrais fournisseurs ont des formes reconnaissables, et le scanner connaît les principales : clés d'accès AWS, jetons GitHub sous forme classique et à grain fin, clés Stripe secrètes et restreintes, clés OpenAI de projet et génériques, clés Anthropic, clés API Google et jetons Slack. Un bloc de clé privée est capturé comme un seul résultat entier, de sa ligne BEGIN à sa ligne END, parce que masquer seulement une partie d'un bloc de clé laisse une clé utilisable. Les JSON Web Tokens sont reconnus à leur structure en trois segments base64url, et les numéros de carte doivent passer la somme de contrôle de Luhn avant d'être signalés, de sorte que les numéros de commande et les horodatages ordinaires restent silencieux.
Entropie, espaces réservés et les limites honnêtes
La deuxième couche couvre les secrets sans forme de fournisseur : des affectations comme password = …, api_key : … ou client_secret = …. Un mot-clé nu ne prouve rien, donc la valeur doit franchir deux autres portes — au moins douze caractères et une entropie de Shannon d'au moins 3,2 bits par caractère, que les clés aléatoires franchissent aisément et que les mots ordinaires échouent. Les valeurs d'espace réservé sont exclues par conception : tout ce qui contient example, test, dummy, xxx, your-, placeholder ou changeme est de la documentation, pas un identifiant, et le signaler vous entraînerait à ignorer le scanner. Quand les formes se chevauchent, le motif spécifique gagne : une clé Stripe affectée à une variable est signalée une seule fois, comme clé Stripe.
Deux types de résultats protègent les personnes plutôt que les systèmes. Les adresses e-mail sont signalées comme données personnelles, car un ticket plein d'adresses de clients est un incident de confidentialité même quand aucun mot de passe n'apparaît. Les numéros de carte ne sont signalés que lorsque les chiffres passent Luhn, la somme de contrôle intégrée à chaque vrai numéro de carte — le même test qui permet au scanner d'ignorer les numéros de facture, les codes de suivi et les horodatages Unix qui ont seulement l'air longs et numériques. À l'écran, chaque valeur est masquée à ses quatre premiers caractères au plus, de sorte qu'un regard par-dessus l'épaule ou une capture d'écran apprennent le type et l'emplacement d'un secret, jamais le secret lui-même ; les valeurs courtes ne montrent rien du tout. La valeur complète n'existe que dans votre texte d'origine, qui ne quitte jamais la page.
Utilisez le masqueur comme une étape d'une habitude de partage plus sûre, pas comme une garantie. Masquez localement, partagez la copie masquée, et envoyez le vrai secret — quand un secret doit vraiment changer de mains — via un gestionnaire de secrets ou un lien de partage expirant, jamais par le même ticket ou la même discussion que le texte masqué. Si un vrai identifiant a déjà été collé sans masquage quelque part, effacer le message ne suffit pas : copies, index et notifications peuvent déjà exister, donc faites tourner l'identifiant et traitez l'ancien comme public. L'article compagnon, masquez vos secrets avant de coller, parcourt ce flux en entier ; l'analyseur HAR fait le même travail pour les captures du navigateur, et l'analyseur .env vérifie les fichiers de configuration avant que vous les validiez.
La bibliothèque de détection, en termes simples
| Clé d'accès AWS | AKIA ou ASIA suivi d'exactement 16 lettres majuscules ou chiffres — la forme des identifiants de clé d'accès AWS, longue durée et temporaires. |
| Jeton GitHub | Les préfixes ghp_, gho_, ghu_, ghs_ et ghr_ avec au moins 36 caractères de plus, plus la forme à grain fin github_pat_. |
| Clé Stripe | sk_ ou rk_ suivi de live_ ou test_ et d'au moins 16 caractères alphanumériques — clés secrètes et restreintes, mode test inclus, car les clés de test révèlent la structure et les habitudes du compte. |
| Clés OpenAI et Anthropic | Les clés de projet sk-proj- et les clés sk- génériques de 32 caractères ou plus comptent comme OpenAI ; les clés sk-ant- sont signalées comme Anthropic, un type distinct avec son propre chemin de rotation. |
| Clé API Google et jeton Slack | AIza suivi de 35 caractères pour Google ; les préfixes xoxb, xoxa, xoxp, xoxr et xoxs pour les jetons Slack de bot, d'application, d'utilisateur, de rafraîchissement et de session. |
| Bloc de clé privée | Un bloc PEM entier, de -----BEGIN PRIVATE KEY----- (variantes RSA, EC, OpenSSH et PGP incluses) à la ligne END correspondante, signalé et masqué comme un seul résultat. |
| JSON Web Token | Trois segments base64url séparés par des points, dont les deux premiers commencent par eyJ — la forme encodée de l'en-tête et de la charge JSON par lesquels commence tout JWT. |
| Affectation générique | Des valeurs affectées à des noms comme api_key, secret, token, password, passwd, auth_token, access_token ou client_secret, signalées seulement quand la valeur fait au moins 12 caractères et que son entropie de Shannon atteint 3,2 ; les espaces réservés documentés ne sont jamais signalés. |
| Adresse e-mail | Des adresses e-mail ordinaires, signalées comme données personnelles (PII) pour que les collages en masse d'adresses de clients ou d'employés soient attrapés avant qu'ils se propagent. |
| Numéro de carte | Des suites de 13 à 19 chiffres, espaces et tirets autorisés, signalées seulement quand elles passent la somme de contrôle de Luhn que tout vrai numéro de carte satisfait. |
| Masquage et marqueur | À l'écran, une valeur montre au plus ses quatre premiers caractères plus des points de suspension, et rien pour les valeurs de quatre caractères ou moins. Dans la copie masquée, chaque résultat devient le marqueur unique [REDACTED] ; le type reste visible dans le tableau des résultats, jamais en ligne. |
Questions fréquentes
Mon texte est-il téléversé ou stocké quelque part ?
Non. L'analyse court dans cette page, sur votre appareil : rien n'est téléversé, transmis ni stocké, et analyser ne fait aucune requête réseau. C'est une règle de conception délibérée — un outil qui vous demanderait de téléverser du texte plein de secrets pour retirer les secrets ferait partie du problème.
Quels types de secrets peut-il trouver ?
Des identifiants en forme de fournisseur — clés d'accès AWS et clés et jetons de GitHub, Stripe, OpenAI, Anthropic, Google et Slack — plus des blocs entiers de clé privée, des JSON Web Tokens, des valeurs à haute entropie affectées à des noms comme password ou api_key, des adresses e-mail et des numéros de carte qui passent la somme de Luhn. Le tableau de faits ci-dessus liste chaque motif en termes simples.
Pourquoi a-t-il manqué un secret que je vois dans mon texte ?
Trois raisons honnêtes. La valeur peut être coupée entre des lignes ou enveloppée, de sorte qu'aucune forme unique ne correspond. Ce peut être un mot de passe humain à faible entropie affecté à un nom que la règle générique ne connaît pas. Ou ce peut être un format qu'aucun motif ne couvre encore — une chaîne de connexion de base de données, une valeur de cookie, une URL en authentification basique. Le scanner attrape les formes courantes et bien documentées de façon déterministe ; c'est un filet de sécurité, pas une preuve que le texte est propre, donc parcourez vous-même l'aperçu avant de partager.
Pourquoi a-t-il signalé quelque chose qui n'est pas un vrai secret ?
D'habitude parce que la valeur a honnêtement la forme d'un secret : une valeur de test d'apparence aléatoire sans mot d'espace réservé, un jeton d'exemple de documentation interne, ou un JWT utilisé comme exemple front-end. Vérifiez le tableau des résultats avant de partager — un faux positif coûte un coup d'œil, tandis qu'un faux négatif coûte une rotation. Les valeurs contenant example, test, dummy, xxx, your-, placeholder ou changeme ne sont jamais signalées, donc marquer les exemples ainsi garde le bruit bas.
Masquer un secret le rend-il sûr si l'original a déjà fui ?
Non. Le masquage protège les copies que vous faites à partir de maintenant ; il ne peut pas rappeler un ticket, un message de discussion ou un journal déjà parti avec le secret dedans. Traitez tout identifiant apparu sans masquage dans un système partagé comme public : faites-le tourner chez le fournisseur, révoquez l'ancien, et partagez seulement ensuite le texte masqué. L'article compagnon, masquez vos secrets avant de coller, explique l'ordre « tourner d'abord » et pourquoi effacer le message ne suffit pas.