Sto memorizzando i dati dei clienti e sono sensibili alla privacy e alla sicurezza dei dati. In alcuni casi, non ho bisogno dei dati reali, ma potrei lavorare con un hash dei dati. Ad esempio, nel caso di un'email di un utente. Non ho bisogno nella nostra applicazione per l'indirizzo email degli utenti tranne che per confrontare per l'uguaglianza per trovare i record sulla stessa persona.
Quindi per minimizzare l'esposizione di quei dati, stavo pensando di sostituire l'e-mail con un hash BCrypt dell'e-mail prima di salvarlo nel database - in questo modo non lo memorizzo, ma posso comunque confrontare come record, o se il cliente vuole cercare una particolare e-mail, può inserirla ed essere ancora in grado di cercarla.
Ma avremo 100.000 di record, quindi il costo computazionale di Bcrypt diventerebbe rapidamente un problema quando i record di riferimenti incrociati.
Sto pensando di usare solo l'MD5 inferiore poiché è più veloce, ma volevo controllare il mio modo di pensare:
- La difficoltà ridotta di MD5 contro Bcrypt sconfigge lo scopo dell'hashing in primo luogo, o è un compromesso valido in questo caso?
- Questo approccio in generale ha una presa di sicurezza o una scappatoia che potrei aver ignorato?