Algoritmo di hash dove la reidentificazione è impossibile?

2

Sto cercando di rendere anonimo un ID thread di messaggi per impedire la reidentificazione anche con l'accesso completo al database di origine.

  1. Ho bisogno di coerenza durante l'elaborazione, in modo che più istanze di dire "100" producano lo stesso hash proprio come un normale algoritmo di hashing.
  2. Ho bisogno di tagliare il cavo in un punto e cancellare la chiave / seme, in modo che sia impossibile produrre l'hash usando "100" in futuro.

Grazie per qualsiasi suggerimento. Sarebbe gradito un esempio in Python o Java.

Aggiornamento - Applicazione pratica della risposta:

Ho generato una password di 24 caratteri su link da utilizzare come seed / key.

Ho trovato una semplice implementazione su questo Gist: link

Quindi il piano è di eliminare la chiave dal mio codice una volta che sono pronto e i dati saranno completamente separati dalla sua origine.

    
posta tovare 25.09.2016 - 00:11
fonte

1 risposta

6

Ciò di cui hai bisogno è un hash con chiave. Forse l'esempio più comune è HMAC. Prende i tuoi dati e la tua chiave, al fine di produrre l'output che sarà deterministico, così otterrai sempre la stessa uscita MAC per 100 (l'input del tuo campione). Quando hai finito di calcolare gli hash dei tuoi dati, elimina la chiave e non sarai più in grado di calcolare gli stessi MAC senza forzare la chiave. Supponendo che la chiave che hai scelto sia abbastanza strong (diciamo, 128 bit da un CSPRNG) e questo non sarà fattibile anche con tutta la potenza di calcolo sulla terra per tutto il tempo.

    
risposta data 25.09.2016 - 00:59
fonte

Leggi altre domande sui tag