2012-01-02 11 views
6

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.

+0

Interessante domanda, anche se non penso che ci sia una risposta oltre "memorizzarli in una colonna separata" ... Ma vedremo –

+1

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

+0

@Pekka sì, vediamo ... – Alasjo

risposta

3

Hai scelto un algoritmo che non fornisce una funzionalità che ora dici di aver bisogno. È necessario elaborare le proprie esigenze prima di si sceglie un algoritmo.

+1

Beh, non è troppo tardi per cambiare algoritmo, qualche suggerimento? – Alasjo

+1

Utilizzare lo stesso seme per ogni password o utilizzare due schemi di tracciamento separati, uno solo per catturare duplicati (che non tracciano quale utente ha la password!) E uno per l'autenticazione (che lo fa). –

+0

La domanda non riguardava le password, ma vedo la necessità di un set di dati separato per il confronto. Grazie. – Alasjo

Problemi correlati