Sono uno sviluppatore web che inizia a immergermi nella crittografia, quindi ti prego di scoprire con me su questo ...
Diciamo che ho una collezione di hash che sono stati generati da alcuni dati comuni, cioè modifiche a più record. C'è un modo per generare un hash secondario dall'hash principale e confrontarlo con gli altri hash in base a come è stato generato l'hash principale. Ad esempio ...
plain text | hash | hint hash
----------------------------------------------
"USER:123:fName:Alice" | 92eb5ff.. | 3cd24
"USER:123:fName:alice!"| 1c77753.. | 3cd24
"USER:456:fName:Bob" | fee6ae2.. | 7d28e
"USER:456:fName:bob!" | 7775315.. | 7d28e
"USER:789:fName:Carl" | fec3ad7.. | 75315
Si noti come tutti gli hash siano univoci, ma gli hash del suggerimento corrispondono agli ID dei record da cui è stato eseguito l'hash. Quindi, se ho generato questi hash basati sul testo semplice e su una chiave, ad esempio genHash (plainText, keyText). Se disponi solo degli hash, puoi associare gli hash correlati tra loro solo con gli hash del suggerimento. Quindi, se avessi solo gli hash, potrei ancora trovare le loro associazioni con un paio di chiamate getHintHash (hash) ...
Tabella degli hash:
hash
---------
92eb5ff..
1c77753..
fee6ae2..
7775315..
fec3ad7..
Tabella degli hash con gli hint hash:
hash | hint hash
----------------------
92eb5ff.. | 3cd24
1c77753.. | 3cd24
fee6ae2.. | 7d28e
7775315.. | 7d28e
fec3ad7.. | 75315
Ora ho le relazioni tra gli hash univoci senza esporre il testo in chiaro che li ha generati. È possibile? Ricorda, la funzione di hashing ha ottenuto il testo in chiaro e una chiave che potrebbe essere basata su "hint hint" al di fuori di ...
genHash("USER:123:fName:Alice", "USER:123") -> 92eb5ff..