Générateur TOTP — Code d'authentification 2FA en direct
Collez un secret TOTP Base32 et regardez le véritable code d'authentification à 6 chiffres en direct tourner toutes les 30 secondes, entièrement hors ligne dans votre navigateur.
Résultat
Cet outil génère des codes TOTP (Time-based One-Time Password) réels et conformes aux normes à partir d'un secret Base32, les mêmes codes rotatifs à six chiffres affichés par des applications comme Google Authenticator ou Authy. Collez le secret qui vous a été fourni lors de la configuration de l'authentification à deux facteurs - la même chaîne généralement cachée derrière un code QR - et regardez le compte à rebours du code en direct et actualisez-le toutes les 30 secondes, exactement comme il le ferait dans une application téléphonique. Il est destiné à tester et vérifier les secrets 2FA que vous possédez ou contrôlez : déboguer un flux de connexion que vous créez, confirmer un code de sauvegarde avant de jeter un QR de provisionnement ou vérifier qu'un secret a été correctement saisi.
Sous le capot, il s'agit d'une véritable implémentation de la RFC 6238 (TOTP) construite sur la RFC 4226 (HOTP), et non d'un compte à rebours cosmétique. Le secret Base32 est décodé selon la RFC 4648 en octets de clé bruts, l'heure Unix actuelle est divisée par le pas de temps pour obtenir un compteur mobile, et ce compteur est codé sous la forme d'un tampon big-endian de 8 octets. L'API Web Crypto native du navigateur (crypto.subtle) calcule un HMAC sur ce tampon avec le hachage choisi - SHA-1 reste la valeur par défaut quasi universelle pour la compatibilité avec les applications d'authentification existantes, tandis que SHA-256 et SHA-512 sont proposés pour les configurations prenant en charge les variantes les plus puissantes. La troncature dynamique de la RFC 4226 extrait ensuite quatre octets de la sortie HMAC avec un décalage pris par rapport à son dernier octet, masque le bit supérieur et réduit le résultat modulo 10 ^ 6 ou 10 ^ 8 pour produire le code à 6 ou 8 chiffres - exactement la même arithmétique que l'application d'authentification de votre téléphone exécute en interne.
Chaque partie du processus se déroule localement : il n'y a aucun composant serveur, aucune balise d'analyse transportant votre secret et aucun appel d'API externe d'aucune sorte. Le texte Base32 que vous collez dans le champ est analysé directement par JavaScript exécuté dans votre onglet et ne le quitte jamais. Cela en fait un moyen sûr de vérifier l'intégrité d'un secret 2FA sur une machine de confiance, mais comme pour tout outil touchant au matériel d'authentification, vous devez toujours éviter de coller des secrets sur des ordinateurs partagés ou publics et ne devez l'utiliser que sur des codes liés à des comptes que vous possédez ou que vous êtes explicitement autorisé à tester.
L'algorithme, le nombre de chiffres et les contrôles de pas de temps existent parce que les déploiements TOTP dans le monde réel ne sont pas parfaitement uniformes : la plupart des services grand public utilisent SHA-1 avec 6 chiffres et un pas de 30 secondes, mais certains outils d'entreprise et de développement émettent des secrets SHA-256 ou SHA-512, des codes à 8 chiffres ou des pas de temps non standard comme 15 ou 60 secondes. Faire correspondre ces paramètres à ce que spécifie un URI de provisionnement ou une page de configuration vous permet de reproduire exactement le code que votre application d'authentification afficherait, ce qui est inestimable lorsque vous implémentez votre propre serveur de vérification TOTP et que vous avez besoin d'une référence hors ligne digne de confiance avec laquelle comparer.