Calcola l'hash di un file
L'hash è un'impronta digitale di lunghezza fissa calcolata da un testo o da un file: la stessa sorgente dà sempre lo stesso hash, ma dall'hash non si risale al contenuto. Questo strumento del KIT calcola MD5, SHA-1, SHA-256 e SHA-512 nel browser, per verificare l'integrità di un download o confrontare due file.
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
A cosa serve davvero un hash
Tre usi quotidiani: verificare che un file scaricato non si sia corrotto (confronti l'hash pubblicato con il tuo), riconoscere due file identici senza aprirli, e fare da impronta di un contenuto. Occhio a un uso improprio: per conservare le password non basta un hash semplice, serve un algoritmo lento con salt come bcrypt o Argon2. MD5 e SHA-1 vanno bene per l'integrità, non per la sicurezza.
Quale algoritmo scegliere
Per verificare un download usa quello che pubblica la fonte: spesso è SHA-256. MD5 e SHA-1 sono velocissimi e ancora diffusi per il checksum, ma sono considerati insicuri contro attacchi mirati: non usarli dove conta la resistenza alle collisioni. SHA-256 è oggi il default ragionevole; SHA-512 quando vuoi un margine in più. Il KIT te li mostra tutti insieme, così confronti al volo.
Il file non si muove
Trascini il file nella pagina e l'hash si calcola sul posto, byte per byte, dentro il browser. Il file non viene caricato online, non transita da nessun server, non resta in cache. Puoi calcolare l'impronta di un documento riservato — una fattura, un contratto — senza che il documento esca dal computer. È l'unico modo davvero sensato di fare l'hash di dati che non vuoi condividere.
Nei tuoi script, via API
$0.002 a richiesta se ti serve calcolare hash dentro un processo automatico: un job che confronta i backup, un controllo di integrità a ogni upload. Per una verifica occasionale, invece, la pagina è più immediata e gratis.
Casi d'uso
Verificare un download
Hai scaricato l'immagine di un sistema e il sito pubblica lo SHA-256. Calcoli l'hash del file scaricato e controlli che coincida carattere per carattere: se combacia, il download è integro e completo.
Riconoscere file duplicati
Tecnoedil Verona S.n.c. ha tre cartelle di foto di cantiere piene di doppioni. Confrontando gli hash trova i file identici anche se hanno nomi diversi, e libera spazio senza aprirli uno a uno.
Sigillare una fattura archiviata
Uno sviluppatore salva l'hash SHA-256 di ogni fattura elettronica conservata: se un file viene modificato anche di un solo byte, l'hash cambia e la manomissione salta all'occhio.
Domande frequenti
Che differenza c'è tra MD5, SHA-1 e SHA-256?
Cambiano l'algoritmo e la lunghezza dell'impronta. MD5 e SHA-1 sono veloci ma vulnerabili alle collisioni: usali solo per il checksum di integrità. SHA-256 e SHA-512 sono lo standard quando serve robustezza.
Posso usare un hash per conservare le password?
Non un hash semplice. Per le password serve un algoritmo lento e salato come bcrypt, scrypt o Argon2. MD5 e SHA-256 sono troppo veloci: ottimi per l'integrità dei file, inadatti a proteggere credenziali.
Il mio file viene caricato online?
No. Il calcolo avviene interamente nel browser: il file non lascia il dispositivo e non resta da nessuna parte. Funziona anche offline.
Che dimensione massima ha il file?
Nessun limite fisso, perché il calcolo è locale: dipende dalla memoria del dispositivo. File di parecchi GB si processano lo stesso, solo un po' più lentamente.
È gratis?
Sì, nel browser è gratis e senza limiti, niente registrazione. Si paga solo se lo usi via API, a $0.002 a richiesta.
Posso calcolare l'hash dentro un mio programma?
Sì, via API a $0.002 a richiesta: comodo quando è un processo automatico a dover verificare l'integrità dei file.
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/dev/hash \
-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/hash", {
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/hash",
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/hash", 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/hash", 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
{
"items": [
"valor-1",
"valor-2"
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.hash",
"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. |