Confronti due checksum di file
Il confronto dei checksum consente di verificare rapidamente che un file sia arrivato con lo stesso contenuto che aveva prima del trasferimento.
Esegui gratis nel browser
Inserisca il valore registrato all’origine e quello calcolato a destinazione con il medesimo algoritmo. Questo strumento li confronta senza distinguere maiuscole e minuscole, rifiuta valori di lunghezza diversa e restituisce un esito inequivocabile. Non carica, esamina né calcola l’hash del file: Lei mantiene il controllo sia del file sia dell’intero processo di calcolo.
Confronti i valori di origine e destinazione
Calcoli un checksum prima che il file lasci l’origine e un altro al termine del trasferimento. Entrambi i calcoli devono utilizzare lo stesso algoritmo e le stesse impostazioni. Incolli il primo valore in checksum_before e il secondo in checksum_after. Il comparatore elimina gli spazi esterni, verifica che nessun valore sia vuoto e controlla che le due stringhe contengano lo stesso numero di caratteri. Quindi le confronta senza distinguere maiuscole e minuscole. Questo comportamento è utile per i digest esadecimali: un programma può stampare lettere minuscole e un altro maiuscole anche se i byte rappresentati sono identici. Un esito vero indica che le rappresentazioni fornite coincidono; un esito falso segnala che almeno un carattere è diverso. La risposta riporta anche la lunghezza convalidata, utile per documentare il formato confrontato. Lo strumento non deduce l’algoritmo dalla lunghezza, perché più formati possono avere la stessa dimensione e una stringa da sola non dimostra quale algoritmo l’abbia prodotta. Registri separatamente l’algoritmo nella Sua procedura, affinché il calcolo a destinazione corrisponda in modo affidabile al metodo usato all’origine.
Interpreti una corrispondenza senza sopravvalutarla
Quando l’esito è vero, le due stringhe sono uguali dopo la normalizzazione delle maiuscole e minuscole. È una prova solida che, con l’algoritmo scelto, il file trasferito ha prodotto lo stesso digest del file sorgente. Non dimostra che questa pagina abbia calcolato i due checksum, poiché il comparatore riceve soltanto le stringhe. Inoltre non può rilevare un errore operativo se entrambi i valori sono stati copiati dallo stesso punto o calcolati sul file sbagliato. Se l’esito è falso, ripeta i calcoli direttamente sui file previsti prima di ritrasferire qualsiasi dato. Una differenza può indicare corruzione, caricamento incompleto, conversione in modalità testo, archivio modificato o un valore incollato da un altro artefatto. Lunghezze diverse generano un errore invece di un esito falso, perché la capacità presuppone lo stesso algoritmo. Con tale presupposto, dimensioni differenti segnalano una configurazione o una copia errata da correggere. Viene ignorata soltanto la differenza tra maiuscole e minuscole. Spazi interni, segni, prefissi e separatori restano significativi: usi formati comparabili o rimuova le decorazioni specifiche dei programmi.
Inserisca il confronto nel flusso di trasferimento
Per un download occasionale, calcoli i checksum di origine e destinazione con strumenti locali affidabili, annoti chiaramente l’algoritmo e utilizzi questo confronto come seconda verifica. Per una consegna automatizzata, conservi il checksum sorgente accanto all’artefatto o in un manifesto firmato, calcoli quello di destinazione dopo il completamento della scrittura finale e richiami l’API prima di dichiarare riuscito il trasferimento. Una differenza deve bloccare pubblicazione o distribuzione e conservare informazioni sufficienti per l’indagine; una coppia malformata o con lunghezze diverse va trattata come errore di configurazione. Scelga l’algoritmo in base al modello di minaccia e affidabilità del flusso. Gli hash crittografici moderni sono adatti quando contano sia la corruzione accidentale sia la sostituzione intenzionale; checksum più vecchi o brevi possono essere utili in sistemi vincolati, ma offrono garanzie differenti. Questa capacità non impone un algoritmo: il suo compito mirato è confrontare due valori già prodotti con lo stesso metodo. Il calcolo deterministico non usa rete, modelli, casualità o orologio. Browser e API restituiscono quindi lo stesso risultato, mentre i sistemi automatici possono effettuare il confronto per $0.002 a richiesta senza inviare il file.
Casi d'uso
Verificare una versione scaricata
Confronti il checksum pubblicato con una versione e il valore calcolato dopo averne scaricato il file.
Controllare il trasferimento di un artefatto
Blocchi una distribuzione o pubblicazione quando il checksum di destinazione differisce dal valore sorgente registrato.
Controllare l’integrità di un backup
Confronti i valori prodotti prima e dopo la copia di un backup senza inviarne i dati al comparatore.
Domande frequenti
Il confronto distingue maiuscole e minuscole?
No. Le lettere maiuscole e minuscole sono considerate equivalenti, così da accettare i comuni formati esadecimali.
Perché vengono rifiutate lunghezze diverse?
I valori devono provenire dallo stesso algoritmo. Dimensioni differenti indicano formati o algoritmi incompatibili oppure una copia incompleta.
Lo strumento calcola il checksum del mio file?
No. Confronta due stringhe fornite da Lei e non deve mai ricevere il file sottostante.
Una corrispondenza dimostra che il trasferimento è sicuro?
Dimostra soltanto che i valori forniti coincidono ignorando maiuscole e minuscole. La garanzia dipende anche da come sono stati calcolati, protetti e associati al file corretto.
Gli spazi vengono ignorati?
Vengono rimossi solo gli spazi intorno a ciascun valore completo. Spazi o separatori interni restano significativi.
Quanto costa il confronto tramite API?
Ogni richiesta API costa $0.002. La stessa comparazione deterministica può essere eseguita anche nel browser.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"checksum_before": "9e107d9d372bb6826bd81d3542a419d6",
"checksum_after": "9E107D9D372BB6826BD81D3542A419D6"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.file_checksum_compare",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |