Obfuscateur de chaîne

Masquez les clés API, les jetons, les e-mails et les numéros de compte avant de les coller dans des tickets ou des chats. Choisissez combien de caractères restent visibles, le caractère de masquage, et si la longueur réelle doit être cachée.

Partagez la forme d'un secret sans en partager le secret. Collez un jeton, une clé, un e-mail ou un numéro de compte et choisissez combien du début et de la fin restent visibles. Tout ce qui se trouve entre les deux est remplacé par un caractère de masquage, afin qu'un collègue puisse confirmer de quel identifiant il s'agit sans jamais le voir.

Le masquage n'est pas un chiffrement. Si un secret a déjà été exposé, faites-le tourner au lieu de le masquer.

Le masquage est un outil de partage, pas un contrôle de sécurité

Ce que le masquage protège réellement

Supprimer le milieu d'un identifiant résout bien un problème précis et restreint : il permet d'évoquer un secret sans le transmettre. Les tickets d'assistance, les rapports de bug, les captures d'écran et les fils de discussion fuient des identifiants en continu, généralement parce que quelqu'un avait besoin de confirmer quel identifiant était utilisé, pas quelle était la valeur de l'identifiant. Afficher sk_live_51H8...FgH répond pleinement à la première question et pas du tout à la seconde.

Voilà toute la proposition de valeur, et il vaut la peine d'être précis sur les limites. Le masquage est une transformation à sens unique et avec perte, appliquée pour la communication humaine. Ce n'est pas un chiffrement, car il n'y a ni clé ni chemin de retour prévu. Ce n'est pas un hachage, car il n'est pas conçu pour résister à quoi que ce soit. Cela ressemble davantage à la façon dont un reçu imprime les quatre derniers chiffres d'une carte : suffisant pour identifier, insuffisant pour utiliser.

Choisir combien révéler

Chaque caractère visible est un caractère que l'attaquant n'a pas à deviner, donc le préfixe et le suffixe doivent être aussi courts que la tâche d'identification le permet. Quatre caractères à chaque extrémité constituent une valeur par défaut raisonnable pour les longs jetons aléatoires, et c'est ce que montrent la plupart des tableaux de bord fournisseurs. Pour les valeurs courtes, conservez-en moins : révéler quatre caractères d'un code à huit caractères ne laisse presque rien.

Les valeurs structurées méritent une réflexion supplémentaire car la partie visible peut être plus informative qu'il n'y paraît. Beaucoup de clés API portent un préfixe significatif, et sk_live_ versus sk_test_ est précisément la distinction que l'on veut généralement préserver. Les adresses e-mail sont le piège inverse : conserver le domaine va généralement, mais la partie locale plus un petit domaine peut identifier une seule personne, ce qui retransforme une chaîne masquée en donnée personnelle.

Cet outil refuse que les fenêtres de début et de fin se chevauchent. Si les deux réglages couvraient ensemble toute la chaîne, il les réduit, car le mode d'échec d'un masque chevauchant est d'imprimer la valeur d'origine en entier.

Fuite de longueur et largeur fixe

Un masque qui préserve la longueur préserve une information. Le nombre d'astérisques indique exactement à un lecteur la longueur du secret, ce qui réduit une recherche par force brute et peut identifier le type d'identifiant directement, puisque beaucoup de formats de clé ont une longueur fixe. Pour un mot de passe en particulier, publier la longueur est une véritable concession.

L'option à largeur fixe remplace tout le milieu par une suite constante de caractères de masquage quelle que soit la longueur réelle, si bien que chaque valeur masquée a la même taille. Utilisez-la chaque fois que la sortie sera vue par quelqu'un hors de votre équipe. Gardez la valeur par défaut de préservation de la longueur quand vous déboguez avec des collègues et que la longueur elle-même est diagnostique, par exemple quand vous soupçonnez une variable d'environnement tronquée.

Enfin, traitez cela comme une étape de mise en forme, jamais comme une réponse à incident. Si un secret actif est déjà apparu dans un ticket, un journal ou un dépôt, masquer la copie ne change rien à l'exposition d'origine. Faites d'abord tourner l'identifiant, puis masquez ce que vous collez par la suite.

Note open-source : implémenté en JavaScript vanilla sans bibliothèque tierce.

FAQ

Le texte masqué peut-il être inversé ?
Non. Les caractères masqués sont ignorés, pas encodés, il n'y a donc rien à décoder. Seuls les caractères que vous avez choisi de garder visibles subsistent.
Combien de caractères doivent rester visibles ?
Aussi peu que nécessaire pour identifier la valeur. Quatre à chaque extrémité conviennent aux longs jetons aléatoires ; pour les valeurs courtes comme un code, révélez-en moins ou rien du tout.
À quoi sert la largeur fixe ?
Elle remplace le milieu par un nombre constant de caractères de masquage afin que la sortie ne révèle jamais la longueur réelle. Utilisez-la pour tout ce qui est partagé hors de votre équipe.
Ma saisie est-elle envoyée à un serveur ?
Non. Le masquage s'exécute entièrement dans votre navigateur avec JavaScript, ce qui rend sûr le collage d'un identifiant actif ici.
Puis-je masquer un e-mail tout en le gardant reconnaissable ?
Oui, conservez les derniers caractères pour que le domaine subsiste. Attention : une partie locale courte plus un petit domaine peuvent encore identifier une seule personne.
Une clé a fuité. Le masquage suffit-il ?
Non. Le masquage n'affecte que la copie que vous vous apprêtez à partager. Faites d'abord tourner l'identifiant exposé, puis utilisez le masquage pour les messages futurs.