Dipende dallo scopo del controllo: per un antivirus, per esempio, controllare solo le signature di un file è un male, perchè anche solo modificando un byte un malware otterrebbe un nuovo hash e quindi risulterebbe non detectato (si viene a creare un meccanismo del gatto e del topo dove ogni volta un hash finisce in una blacklist ma subito dopo ne spunta uno nuovo che funziona, che a sua volta finisce in blacklist, ecc.)
Se invece lo scopo è verificare che il file che ti è stato inviato/che hai scaricato non è stato manomesso, alterato o più semplicemente non si è corrotto in qualche modo, la comparazione degli hash resta a mio avviso la tecnica migliore (non a caso molti siti mettono ancora a disposizione l'hash del file che si deve scaricare, proprio per verificare che tutto sia ok)