Comparez deux sommes de contrôle de fichier
La comparaison de sommes de contrôle permet de confirmer rapidement qu’un fichier est arrivé avec le même contenu qu’avant son transfert.
Lancer gratuitement
Indiquez la valeur relevée à la source et celle calculée à destination avec le même algorithme. Cet outil les compare sans distinguer majuscules et minuscules, refuse les valeurs de longueurs différentes et fournit un résultat sans ambiguïté. Il ne téléverse pas le fichier, ne l’examine pas et ne calcule pas son empreinte : vous gardez la maîtrise du fichier et du processus de calcul.
Comparez les valeurs de la source et de la destination
Calculez une somme de contrôle avant que le fichier ne quitte sa source, puis une seconde fois lorsque le transfert est terminé. Les deux calculs doivent employer le même algorithme et les mêmes réglages. Collez la première valeur dans checksum_before et la seconde dans checksum_after. Le comparateur supprime les espaces périphériques, vérifie qu’aucune valeur n’est vide et confirme que les deux chaînes comportent le même nombre de caractères. Il les compare ensuite sans tenir compte de la casse. Ce comportement convient aux empreintes hexadécimales : un utilitaire peut afficher des lettres minuscules et un autre des majuscules alors que les octets représentés sont identiques. Un résultat vrai signifie que les représentations fournies concordent ; un résultat faux signale qu’au moins un caractère diffère. La réponse indique aussi la longueur validée afin de documenter la représentation comparée. L’outil ne déduit volontairement aucun algorithme de cette longueur, car plusieurs formats peuvent avoir la même taille et une chaîne seule ne permet pas d’identifier son algorithme. Consignez celui-ci séparément dans votre procédure pour garantir que le calcul à destination reproduit bien la méthode employée à la source.
Interprétez une concordance sans en exagérer la portée
Lorsque le résultat est vrai, les deux chaînes sont identiques après normalisation de la casse. Cela constitue un indice solide que le fichier transféré a produit la même empreinte que le fichier source avec l’algorithme choisi. Cela ne prouve pas que cette page a calculé les sommes, puisqu’elle ne reçoit que les deux chaînes. Elle ne peut pas davantage détecter une erreur de procédure si les deux valeurs ont été copiées au même endroit ou calculées sur le mauvais fichier. Si le résultat est faux, recalculez les deux valeurs directement sur les fichiers concernés avant de recommencer le transfert. Un écart peut révéler une corruption, un envoi incomplet, une conversion en mode texte, une archive modifiée ou une valeur collée depuis un autre artefact. Des longueurs différentes déclenchent une erreur plutôt qu’un résultat faux, car la capacité suppose que les valeurs proviennent du même algorithme. Dans ce cadre, des tailles inégales indiquent un problème de configuration ou de copie à corriger. Seule la casse est ignorée. Les espaces internes, signes, préfixes et séparateurs restent significatifs : utilisez donc des formats comparables ou retirez les décorations propres aux utilitaires.
Intégrez la comparaison à votre processus de transfert
Pour un téléchargement ponctuel, calculez les valeurs source et destination avec des outils locaux fiables, notez clairement l’algorithme et utilisez cette comparaison comme seconde vérification. Dans une chaîne automatisée, conservez la somme source avec l’artefact ou dans un manifeste signé, calculez la valeur de destination après l’écriture définitive, puis appelez l’API avant de déclarer le transfert réussi. Une différence doit interrompre la publication ou le déploiement tout en conservant assez de contexte pour l’enquête ; une paire mal formée ou de longueurs différentes doit être traitée comme une erreur de configuration. Choisissez l’algorithme selon le modèle de menace et de fiabilité de votre processus. Les fonctions cryptographiques modernes conviennent lorsque la corruption accidentelle et la substitution volontaire sont importantes ; des sommes plus anciennes ou plus courtes peuvent rester utiles dans des systèmes contraints, mais n’offrent pas les mêmes garanties. Cette capacité n’impose aucun algorithme : son rôle précis consiste à comparer deux valeurs déjà produites par la même méthode. Le solveur déterministe n’utilise ni réseau, ni modèle, ni hasard, ni horloge. Le navigateur et l’API donnent donc le même résultat, et vos systèmes peuvent effectuer la comparaison pour $0.002 par requête sans transmettre le fichier.
Cas d’usage
Vérifier une version téléchargée
Comparez la somme publiée avec une version à celle calculée après le téléchargement de son fichier.
Contrôler un transfert d’artefact
Arrêtez une publication ou un déploiement si la somme de destination diffère de la valeur source enregistrée.
Vérifier l’intégrité d’une sauvegarde
Comparez les valeurs produites avant et après la copie d’une sauvegarde sans envoyer ses données au comparateur.
Questions fréquentes
La comparaison tient-elle compte de la casse ?
Non. Les majuscules et minuscules sont considérées comme équivalentes, ce qui convient aux formats hexadécimaux courants.
Pourquoi les longueurs différentes sont-elles refusées ?
Les valeurs doivent provenir du même algorithme. Des tailles inégales indiquent des formats ou algorithmes incompatibles, ou une copie incomplète.
Cet outil calcule-t-il la somme de mon fichier ?
Non. Il compare deux chaînes que vous fournissez et n’a jamais besoin du fichier sous-jacent.
Une concordance prouve-t-elle que le transfert est sûr ?
Elle prouve seulement que les valeurs fournies concordent sans tenir compte de la casse. La garantie dépend aussi de leur calcul, de leur protection et de leur association au bon fichier.
Les espaces sont-ils ignorés ?
Seuls les espaces autour de chaque valeur complète sont supprimés. Les espaces ou séparateurs internes restent significatifs.
Quel est le prix de la comparaison par API ?
Chaque requête API coûte $0.002. Vous pouvez aussi exécuter la même comparaison déterministe dans le navigateur.
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/verify/file-checksum-compare \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"checksum_before":"9e107d9d372bb6826bd81d3542a419d6","checksum_after":"9E107D9D372BB6826BD81D3542A419D6"}'const res = await fetch("https://api.kit.forhosting.com/verify/file-checksum-compare", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"checksum_before": "9e107d9d372bb6826bd81d3542a419d6",
"checksum_after": "9E107D9D372BB6826BD81D3542A419D6"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/file-checksum-compare",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"checksum_before": "9e107d9d372bb6826bd81d3542a419d6",
"checksum_after": "9E107D9D372BB6826BD81D3542A419D6"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/file-checksum-compare", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"checksum_before":"9e107d9d372bb6826bd81d3542a419d6","checksum_after":"9E107D9D372BB6826BD81D3542A419D6"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"checksum_before":"9e107d9d372bb6826bd81d3542a419d6","checksum_after":"9E107D9D372BB6826BD81D3542A419D6"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/file-checksum-compare", 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
{
"checksum_before": "9e107d9d372bb6826bd81d3542a419d6",
"checksum_after": "9E107D9D372BB6826BD81D3542A419D6"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.file_checksum_compare",
"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. |