Générateur TOTP — codes 2FA et QR code otpauth
Transformez un secret Base32 en codes 2FA en direct avec compte à rebours, créez un QR code otpauth:// pour les applications d’authentification, ou lisez une URI existante.
Les codes dépendent de l’horloge de votre appareil. S’ils sont refusés, vérifiez que l’horloge est réglée automatiquement ; la plupart des serveurs acceptent aussi le code précédent et le suivant.
URI otpauth:// et code QR
otpauth://totp/Example%20Inc:jane%40example.com?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ&issuer=Example%20Inc&algorithm=SHA1&digits=6&period=30
Scannez-le avec Google Authenticator, Microsoft Authenticator, 1Password, Authy ou toute autre application TOTP. De nombreuses applications ignorent SHA-256/512 et les codes à 8 chiffres ; gardez les valeurs par défaut sauf si vous contrôlez les deux côtés.
Lire une URI otpauth://
Les secrets et les codes restent dans votre navigateur. Rien n’est envoyé ni enregistré. Traitez un secret TOTP comme un mot de passe : quiconque le possède peut générer vos codes. Parcourir tous les outils gratuits.
Un problème, ou quelque chose à améliorer ? Nous lisons chaque message et corrigeons vite.
Ce générateur TOTP produit les mêmes codes à usage unique basés sur le temps que Google Authenticator, Microsoft Authenticator, 1Password et les autres applications d’authentification. Saisissez un secret Base32 et le code actuel à 6 ou 8 chiffres s’affiche avec un compte à rebours, accompagné des codes précédent et suivant. Il est conçu pour les développeurs qui ajoutent l’authentification à deux facteurs à une application : générez un secret, créez l’URI otpauth:// et le QR code que vos utilisateurs scanneront, et vérifiez que votre serveur accepte les codes qu’il doit accepter.
Les codes sont calculés dans votre navigateur avec la fonction HMAC de WebCrypto, selon la RFC 6238 (TOTP) et la RFC 4226 (HOTP), et l’implémentation est testée avec les vecteurs de test officiels des deux RFC. Rien n’est envoyé nulle part. Malgré tout, un secret TOTP est aussi sensible qu’un mot de passe : quiconque le détient peut générer des codes valides. Utilisez cet outil pour des comptes de test et du travail d’intégration, pas pour remplacer une application d’authentification sur vos vrais comptes.
Mode d’emploi
- Collez un secret Base32 ou appuyez sur Nouveau secret aléatoire. Les espaces et les minuscules sont acceptés.
- Laissez l’algorithme, le nombre de chiffres et la période sur SHA-1, 6 et 30 secondes, sauf si votre serveur utilise autre chose.
- Lisez le code actuel ; l’anneau indique combien de secondes il reste valide. Copiez-le avec le bouton.
- Renseignez l’émetteur et le nom du compte pour créer l’URI otpauth://, puis scannez le QR code avec une application d’authentification pour vérifier que les deux affichent le même code.
- Pour examiner une configuration existante, collez son URI otpauth:// dans le lecteur et appuyez sur Charger.
Questions fréquentes
Comment fonctionne un code TOTP ?
Votre serveur et votre application d’authentification partagent une clé secrète. Toutes les 30 secondes, les deux calculent le HMAC-SHA1 de la clé et du nombre de pas de 30 secondes écoulés depuis le 1er janvier 1970, puis réduisent le résultat à 6 chiffres. Comme les deux côtés utilisent le même secret et la même horloge, ils obtiennent le même code sans communiquer. C’est la RFC 6238 ; l’algorithme sous-jacent basé sur un compteur est HOTP, RFC 4226.
Pourquoi mon code TOTP ne fonctionne-t-il pas ?
De loin la cause la plus fréquente est une horloge décalée. Un écart de plus de 30 secondes environ place l’appareil dans un autre pas de temps ; réglez l’appareil et le serveur pour qu’ils synchronisent l’heure automatiquement. Autres causes : le secret a été mal saisi (le Base32 n’utilise que A–Z et 2–7, donc O, I, 0, 1 et 8 n’y figurent jamais), ou le serveur attend d’autres réglages comme 8 chiffres, SHA-256 ou une période de 60 secondes.
Le SHA-1 dans TOTP est-il dangereux ?
Non. Les faiblesses connues de SHA-1 sont des attaques par collision, qui permettent de créer deux entrées ayant le même hash. TOTP utilise SHA-1 dans un HMAC avec une clé secrète, une construction qui ne dépend pas de la résistance aux collisions et reste sûre. SHA-1 reste la valeur par défaut parce que c’est ce que prennent en charge presque toutes les applications d’authentification.
Qu’est-ce qu’une URI otpauth:// ?
C’est le texte contenu dans un QR code de configuration 2FA, au format Key Uri défini à l’origine par Google Authenticator : otpauth://totp/Issuer:account?secret=BASE32SECRET&issuer=Issuer, éventuellement avec les paramètres algorithm, digits et period. Scanner le QR code transmet simplement cette chaîne à l’application. Quiconque voit le QR code ou l’URI possède le secret : traitez donc les écrans de configuration comme sensibles.
Quelle longueur doit avoir un secret TOTP ?
La RFC 4226 exige au moins 128 bits et en recommande 160, soit 32 caractères Base32. Le bouton Nouveau secret aléatoire génère 160 bits avec crypto.getRandomValues. Beaucoup d’anciens services délivrent des secrets de 80 bits (16 caractères) ; ils fonctionnent, et cet outil vous avertira à leur sujet, mais les nouveaux systèmes devraient utiliser au moins 160 bits.
Toutes les applications d’authentification prennent-elles en charge 8 chiffres et SHA-256 ?
Non. Le format otpauth autorise SHA256, SHA512, 8 chiffres et d’autres périodes, mais certaines applications ignorent ces paramètres et génèrent toujours des codes SHA-1 à 6 chiffres sur 30 secondes, qui ne correspondent alors plus. Si vous contrôlez le serveur, les valeurs par défaut sont le choix sûr. Scannez le QR code de cette page dans les applications que vos utilisateurs sont susceptibles d’utiliser et comparez les codes avant de déployer un réglage non standard.
Ajouter TOTP à votre propre application
• Générez côté serveur un secret aléatoire d’au moins 160 bits par utilisateur, et stockez-le chiffré, pas haché : le serveur a besoin de l’original pour calculer les codes.
• Affichez l’URI otpauth:// sous forme de QR code, plus le secret Base32 en texte pour les utilisateurs qui ne peuvent pas scanner.
• Exigez que l’utilisateur saisisse un code valide avant d’activer la 2FA, pour qu’un scan raté ne le bloque pas hors de son compte.
• Lors de la vérification, acceptez le code actuel et généralement un pas de chaque côté (les codes précédent et suivant affichés ici) pour absorber la dérive d’horloge, et rejetez un code déjà utilisé dans cette fenêtre pour empêcher le rejeu.
• Limitez le nombre de tentatives. Un code à 6 chiffres n’offre qu’un million de possibilités : des essais illimités en viennent à bout.
• Délivrez des codes de récupération à usage unique lors de l’inscription, et hachez-les comme des mots de passe.
TOTP comparé aux codes SMS, aux notifications push et aux passkeys
TOTP est bien plus robuste que les codes SMS, qui peuvent être interceptés par des attaques de type SIM swap et via les faiblesses de SS7, et il fonctionne hors ligne sans numéro de téléphone. Sa faiblesse, c’est l’hameçonnage : une fausse page de connexion convaincante peut demander le code et le relayer au vrai site dans la fenêtre de 30 secondes.
Les validations par notification push sont pratiques mais exposent aux attaques par « fatigue MFA », où l’attaquant envoie des demandes jusqu’à ce que l’utilisateur appuie sur Approuver. Les passkeys et les clés de sécurité matérielles (FIDO2/WebAuthn) sont les seules méthodes courantes qui résistent à l’hameçonnage par conception, car le navigateur lie l’identifiant au domaine du vrai site. Une approche raisonnable consiste à proposer d’abord les passkeys et à garder TOTP comme solution de repli largement prise en charge.
Outils gratuits similaires
- Générateur de mots de passe — Générez un mot de passe aléatoire fort, une phrase de passe facile à retenir ou un code PIN. Tout se passe dans votre navigateur, rien n’est envoyé ni stocké.
- Générateur de QR code — Créez un QR code pour une URL, un texte, un e-mail, un téléphone, un SMS, un Wi-Fi ou une carte de contact, à vos couleurs, et téléchargez-le en PNG ou SVG. Les codes n’expirent jamais.
- Générateur bcrypt — Hachez un mot de passe avec bcrypt au coût de votre choix, vérifiez un mot de passe par rapport à un hash bcrypt et découvrez la signification de chaque partie du hash.
- Générateur de hash — Hachez du texte ou des fichiers en MD5, SHA-1, SHA-256, SHA-384, SHA-512 et CRC32, vérifiez une somme de contrôle ou calculez un HMAC. Les fichiers ne quittent jamais votre appareil.