Desidero memorizzare i dettagli del profilo crittografati in un database. Tuttavia, alcuni dettagli dovrebbero essere univoci e poiché l'algoritmo di crittografia rende casuale il seed per ogni crittografia, è esauriente stabilire se il valore è già memorizzato nel database.Come confrontare stringhe crittografate con semi casuali?
- ho potuto scorrere ogni riga e colonna decrittografare il necessario, ma sarebbe troppo lungo se il numero di righe è grande.
- Potrei memorizzare gli hash di questi dettagli (non crittografati)
ma ciò ucciderebbe il punto di crittografia in primo luogo.
Allora, come faccio a confrontare una stringa crittografata (con seme casuale) con gli altri salvati nel database?
Qualsiasi aiuto è molto apprezzato. La crittografia è fatta con php (MCRYPT_RIJNDAEL_256
/NOFB
), il database è MySQL.
Modifica/soluzione: La memorizzazione dell'hash di dati in aggiunta al valore crittografato sembra essere la soluzione migliore. Ciò rende la convalida di colonne univoche abbastanza facile per me. Grazie a tutti lasciando i loro commenti/risposte.
Interessante domanda, anche se non penso che ci sia una risposta oltre "memorizzarli in una colonna separata" ... Ma vedremo –
Vorrei usare l'hash con un sale dipendente dall'utente, come il loro nome utente. In questo modo, se un campo profilo per un utente è noto, non è possibile dedurre un altro utente con lo stesso valore non modificato in quel campo, poiché il suo hash sarà diverso. – halfer
@Pekka sì, vediamo ... – Alasjo