Sei corretto che gli attacchi di forza bruta siano fattibili, specialmente se i dati che vengono sottoposti a hashing provengono da uno spazio di ricerca relativamente piccolo. Ecco un esempio recente dove i dettagli delle cabine di New York erano inadeguatamente camuffati usando un hash. Dall'articolo:
It turns out there's a significant flaw in the approach. Because both
the medallion and hack numbers are structured in predictable patterns,
it was trivial to run all possible iterations through the same MD5
algorithm and then compare the output to the data contained in the
20GB file. Software developer Vijay Pandurangan did just that, and in
less than two hours he had completely de-anonymized all 173 million
entries.
Si noti che non è l'uso di MD5 che è il problema qui. Qualsiasi algoritmo di hash potrebbe essere forzato bruto esattamente allo stesso modo.
Potrebbe essere possibile rendere irreversibile l'hashing aggiungendo sale prima dell'hashing; tuttavia a quel punto dovresti fare altrettanto bene per creare una tabella di ricerca che mappasse i dati sensibili a valori interamente casuali, quindi non ci sarà alcun algoritmo di hash da interrompere.
Naturalmente tutto ciò presuppone che ci siano associazioni nei dati che si desidera conservare dopo l'anonimizzazione. In caso contrario, l'approccio più sicuro è quello di omettere o mascherare completamente tutti i dati sensibili.