Créez un calendrier de rotation des mots de passe
Une politique de rotation des mots de passe n’est utile que si ses dates permettent d’agir.
Lancer gratuitement
Ce calculateur prend la date de la dernière modification, ajoute l’intervalle de rotation imposé, puis remonte depuis l’échéance pour placer un rappel anticipé. Il fournit des dates ISO exactes que vous pouvez copier dans un ticket, un calendrier, un registre, une procédure ou un flux automatisé. Les années bissextiles et les différentes longueurs de mois sont correctement prises en compte, sans assimiler quatre-vingt-dix jours à trois mois ni entretenir une formule par compte.
Transformez une politique de rotation en deux dates exploitables
Commencez par la date réelle de la dernière modification du mot de passe, et non par le jour où une personne l’a consignée ou a révisé le compte. Saisissez-la au format YYYY-MM-DD et indiquez l’intervalle de la politique sous forme d’un nombre entier positif de jours calendaires. Le calculateur ajoute exactement ce nombre pour obtenir la prochaine échéance. Il retranche ensuite le délai de rappel afin de déterminer le début de la préparation. Ainsi, un intervalle de quatre-vingt-dix jours avec un préavis de quatorze jours produit à la fois la date limite et un déclencheur opérationnel antérieur. Cette différence compte : une échéance seule ne réserve pas de maintenance, ne désigne pas de responsable et ne permet pas de tester le secret de remplacement. Le résultat conserve les intervalles avec les deux dates pour simplifier le contrôle. Choisissez zéro jour pour un rappel à l’échéance, ou une avance suffisante pour les validations et le déploiement du compte.
Comprenez le calcul calendaire et les contrôles
Le planning emploie des jours calendaires, et non des jours ouvrés ou un calcul en mois. Un intervalle de trente jours franchit toujours trente changements de date, même s’il traverse février, un jour bissextile, la fin d’un mois de trente et un jours, un week-end ou un jour férié. Le résultat respecte ainsi les politiques exprimées en nombre fixe de jours et évite l’ambiguïté qui consiste à confondre quatre-vingt-dix jours et trois mois. La dernière modification doit être une véritable date grégorienne au format strict YYYY-MM-DD, avec les zéros initiaux. Les dates impossibles, comme le 30 février, sont refusées. L’intervalle de rotation doit être un entier positif, car zéro ou une valeur négative ne décrit aucune période future. Le délai de rappel doit être un entier positif ou nul. Il peut dépasser l’intervalle si la date obtenue reste dans le calendrier pris en charge, mais ce choix mérite une vérification. Aucune heure actuelle n’est consultée : une même entrée fournit toujours la même sortie.
Intégrez le résultat dans un processus de sécurité répétable
Considérez les dates calculées comme des données de planification, et non comme la preuve qu’un identifiant a été modifié. Enregistrez l’échéance et le rappel avec l’identifiant du compte, le responsable du système, la méthode de rotation et les justificatifs requis dans votre registre de contrôle. À la date du rappel, ouvrez ou actualisez une tâche, vérifiez que la personne responsable dispose toujours des accès, préparez le remplacement et recensez chaque service consommateur. À l’échéance, contrôlez la modification et consignez une nouvelle date de dernier changement avant de calculer le cycle suivant. Pour automatiser ce processus, appelez l’API après chaque rotation réussie et inscrivez les dates renvoyées dans votre outil de tickets ou votre calendrier. Chaque requête coûte $0.002. La fonction ne communique pas sur le réseau et ne reçoit ni n’examine le mot de passe ; seules les métadonnées de planification sont nécessaires. Traitez séparément toute politique exprimée en mois, jours ouvrés ou exceptions fondées sur le risque.
Cas d’usage
Planifiez les rotations des comptes de service
Créez une échéance et une date de préparation après chaque changement confirmé du mot de passe d’un compte de service.
Tenez un registre de contrôle des accès
Ajoutez des champs ISO cohérents de rappel et d’échéance à l’inventaire des identifiants gérés sans stocker de mot de passe.
Déclenchez les tâches de rotation
Calculez les dates qu’un flux automatisé doit employer pour ouvrir une tâche et imposer son achèvement.
Questions fréquentes
Combien coûte un calcul ?
Chaque requête API coûte $0.002 ; l’outil du navigateur peut aussi calculer le planning localement.
Le calculateur a-t-il besoin du mot de passe ?
Non. Il utilise uniquement la date du dernier changement, l’intervalle de rotation et le délai de rappel.
Comment la prochaine échéance est-elle calculée ?
L’intervalle positif est ajouté à la date du dernier changement sous forme d’un nombre exact de jours calendaires.
Les années bissextiles et fins de mois sont-elles gérées ?
Oui. Le calcul valide les dates grégoriennes et tient compte des jours bissextiles et de la longueur réelle des mois.
Le rappel peut-il tomber le jour de l’échéance ?
Oui. Définissez reminder_days_before sur zéro pour obtenir la même date de rappel et d’échéance.
Les week-ends et jours fériés sont-ils ignorés ?
Non. L’intervalle et le préavis sont exprimés en jours calendaires ; ces journées sont donc comptées normalement.
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/final3/password-change-reminder-schedule \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"last_changed_date":"2026-01-15","rotation_interval_days":90}'const res = await fetch("https://api.kit.forhosting.com/final3/password-change-reminder-schedule", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"last_changed_date": "2026-01-15",
"rotation_interval_days": 90
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/final3/password-change-reminder-schedule",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"last_changed_date": "2026-01-15",
"rotation_interval_days": 90
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/final3/password-change-reminder-schedule", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"last_changed_date":"2026-01-15","rotation_interval_days":90}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"last_changed_date":"2026-01-15","rotation_interval_days":90}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/final3/password-change-reminder-schedule", 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
{
"last_changed_date": "2026-01-15",
"rotation_interval_days": 90
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "final3.password_change_reminder_schedule",
"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. |