Estoy almacenando datos de clientes y son sensibles a la privacidad y seguridad de los datos. En algunos casos, no necesito los datos reales, pero podría funcionar con un hash de los datos. Por ejemplo, en el caso de un correo electrónico de usuarios. No tengo ninguna necesidad en nuestra aplicación para la dirección de correo electrónico de los usuarios, excepto para comparar la igualdad para encontrar registros sobre la misma persona.
Así que para minimizar la exposición de esos datos, estaba pensando en reemplazar el correo electrónico con un hash BCrypt del correo electrónico antes de guardarlo en la base de datos; de esa manera no lo almaceno, pero aún puedo comparar registros similares Si el cliente desea buscar un correo electrónico en particular, puede escribirlo y seguir buscando.
Pero tendremos miles de registros, por lo que el costo computacional de Bcrypt se convertiría rápidamente en un problema al hacer referencias cruzadas entre registros.
Estoy pensando en usar solo el MD5 inferior, ya que es más rápido, pero quería comprobar mi forma de pensar:
- ¿La dificultad reducida de MD5 frente a Bcrypt anula el propósito del hash en primer lugar, o es un compromiso válido en este caso?
- ¿Este enfoque en general tiene un problema de seguridad o una laguna que puedo haber pasado por alto?