Confronto tra lunghezza e sicurezza degli algoritmi hash
Questo strumento trasforma il nome di un algoritmo hash in due informazioni pratiche sulla sicurezza: la lunghezza fissa del digest in bit e l’attuale stato della resistenza alle collisioni.
Esegui gratis nel browser
Accetta grafie e separatori comuni, restituisce un nome canonico e rifiuta esplicitamente gli algoritmi sconosciuti. Può usarlo per esaminare configurazioni, descrivere una migrazione o impedire che un digest obsoleto entri in un nuovo sistema. Il risultato JSON è pronto per regole automatizzate e documentazione tecnica.
Che cosa indica il confronto
Una funzione hash converte input di qualsiasi dimensione in un digest di lunghezza fissa. Lo strumento comunica tale lunghezza senza elaborare dati e indica se esistono attacchi pratici alle collisioni. Una collisione si verifica quando due input diversi generano lo stesso digest. Un valore vero segnala la necessità di migrare; un valore falso dice soltanto che questa classificazione non registra una violazione pratica, non che ogni utilizzo sia sicuro.
Nomi, alias e risultati deterministici
I nomi compaiono in formati diversi. SHA-256, sha256 e SHA_256 vengono normalizzati allo stesso algoritmo e la risposta usa una grafia canonica. BLAKE2b e BLAKE2s indicano qui le varianti convenzionali da 512 e 256 bit. L’elenco è volutamente finito: un nome sconosciuto genera un errore, non una supposizione. Non essendoci rete, orologio o casualità, lo stesso input produce sempre lo stesso JSON.
Interpreti correttamente lo stato delle collisioni
La resistenza alle collisioni è una sola proprietà. Un valore falso non raccomanda l’algoritmo per password, autenticazione, firme o qualsiasi protocollo. Le password richiedono una funzione dedicata con salt e costo regolabile; per l’autenticazione serve solitamente HMAC. Usi il risultato per segnalare MD5, SHA-1 e altre opzioni compromesse, quindi applichi gli standard e il modello di minaccia del Suo sistema. Verifichi le indicazioni aggiornate durante ogni migrazione.
Casi d'uso
Verificare una configurazione
Trasformi i nomi presenti in manifesti o impostazioni in dati coerenti e segnali le collisioni compromesse.
Preparare una migrazione
Confronti dimensione e stato dell’algoritmo precedente con il sostituto prima di modificare gli schemi.
Convalidare documentazione tecnica
Controlli che un documento riporti la lunghezza corretta e il nome canonico.
Domande frequenti
Quanto costa?
Ogni richiesta API costa $0.002. Il confronto deterministico può essere eseguito anche nel browser.
Lo strumento calcola l’hash dei miei dati?
No. Riceve soltanto il nome dell’algoritmo e ne restituisce le proprietà.
Che cosa significa resistenza alle collisioni compromessa?
Esistono metodi pratici per creare input diversi che producono lo stesso digest.
Un valore falso rende l’algoritmo adatto alle password?
No. Le password richiedono una funzione dedicata, con salt e costo regolabile.
Quali grafie sono accettate?
Maiuscole e separatori comuni vengono ignorati; SHA-256, sha256 e SHA_256 sono equivalenti.
Che cosa accade con un algoritmo sconosciuto?
La richiesta fallisce come input non valido, senza stimare proprietà o scegliere un nome simile.
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/security/hash-algorithm-compare \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"algorithm":"SHA-256"}'const res = await fetch("https://api.kit.forhosting.com/security/hash-algorithm-compare", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"algorithm": "SHA-256"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/hash-algorithm-compare",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"algorithm": "SHA-256"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/hash-algorithm-compare", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"algorithm":"SHA-256"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"algorithm":"SHA-256"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/hash-algorithm-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
{
"algorithm": "SHA-256"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.hash_algorithm_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. |