Générateur de code TOTP
Le TOTP est le code à six chiffres qui change toutes les trente secondes dans une application d’authentification. Cet outil le calcule à partir d’une clé secrète, exactement comme le ferait votre téléphone, pour tester ou déboguer une double authentification. Le code se génère dans votre navigateur, sans que la clé sorte de l’appareil.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Le même code que votre application
Une application d’authentification et un serveur partagent une clé secrète, puis calculent chacun de leur côté un code dérivé de l’heure courante. Comme les deux utilisent le même secret et la même horloge, ils obtiennent le même code, valable une trentaine de secondes. Cet outil joue le rôle de l’application : donnez-lui la clé, il produit le code attendu à cet instant précis, sans aucun matériel dédié.
Tester une intégration 2FA
Quand on implémente la double authentification, il faut vérifier que le code saisi par l’utilisateur correspond à celui que le serveur calcule. Plutôt que de sortir son téléphone à chaque essai, on génère le code ici à partir de la même clé et on contrôle la concordance. Pratique aussi pour reproduire un décalage d’horloge et observer comment le système réagit à un code légèrement en retard.
Une affaire de synchronisation
Le TOTP repose sur l’heure : si l’horloge du serveur et celle du client divergent de trop, les codes ne concordent plus. La plupart des systèmes tolèrent un léger écart en acceptant le code de la période précédente ou suivante. Comprendre ce mécanisme évite bien des faux problèmes d’authentification attribués à tort à une mauvaise clé ou à un bug applicatif.
La clé ne sort pas du navigateur
Une clé TOTP est aussi sensible qu’un mot de passe : quiconque la possède peut générer vos codes. Le calcul se fait donc localement, sur cette page, sans transmission ni conservation. Pour automatiser la génération de codes de test via l’API, le tarif est de $0.002 la requête, en dollars US ; l’usage manuel reste gratuit et illimité. Le navigateur porte le calcul ; l’API ne fait qu’automatiser les essais.
Cas d’usage
Développer une double authentification
En intégrant la 2FA à son application, Thomas Rousseau génère les codes à partir de la clé de test et vérifie que la validation côté serveur les accepte.
Reproduire un échec de connexion
Un utilisateur n’arrive plus à se connecter : Nadia Benali recalcule le code attendu et découvre un décalage d’horloge sur le serveur.
Documenter une procédure d’accès
Le Studio Lumen SAS prépare un compte partagé et joint le code courant à sa documentation interne, régénéré à la demande.
Questions fréquentes
Qu’est-ce qu’un code TOTP ?
C’est un code à usage unique dérivé d’une clé secrète et de l’heure courante, renouvelé toutes les trente secondes. C’est le mécanisme des applications d’authentification pour la double authentification.
Pourquoi mon code ne correspond-il pas ?
Le plus souvent, un décalage d’horloge entre les deux systèmes, ou une clé mal recopiée. Le TOTP dépend de l’heure : quelques secondes d’écart suffisent parfois. Vérifiez aussi que la clé est bien celle du compte concerné.
Cet outil remplace-t-il mon application d’authentification ?
Il en reproduit le calcul, ce qui sert au test et au débogage. Pour sécuriser vos propres comptes au quotidien, une application dédiée sur un appareil personnel reste préférable.
Ma clé secrète est-elle envoyée quelque part ?
Non. Le code se calcule dans votre navigateur ; la clé n’est ni transmise ni enregistrée. C’est indispensable, car cette clé permet de générer tous vos codes.
Combien de temps un code reste-t-il valable ?
Trente secondes en général, la valeur standard. Beaucoup de serveurs acceptent aussi le code de la période précédente ou suivante pour absorber un léger décalage d’horloge.
Est-ce gratuit ?
Oui, sans limite dans le navigateur. Pour générer des codes de test via l’API, l’appel coûte $0.002 par requête, en dollars US, sans abonnement.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/dev/totp \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/totp", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/totp",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/totp", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/totp", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"items": [
"valor-1",
"valor-2"
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.totp",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |