En mi base de datos, me gustaría cifrar toda la información identificable, incluido el nombre de usuario, de modo que las personas con acceso a la base de datos no puedan deducir el nombre de usuario real (ya que podría indicar la identidad real del usuario). / p>
Y, también, los usuarios deben tener la capacidad de iniciar sesión.
¿Cuál sería la mejor estrategia para lograr esto?
Actualmente, estoy mezclando el nombre de usuario y la contraseña (está bien que nunca se pueda descifrar). Sin embargo, esto introduce la capacidad de realizar un ataque de tabla arco iris (o?).
Mi siguiente idea sería descartar una gran parte del hash, lo suficientemente grande como para que cualquier resultado de un ataque de mesa en el arco iris no sea concluyente. Por supuesto, esto introduciría una tasa de colisión más alta, lo que no es deseable.
Una vez más, un ataque en la mesa del arco iris sería capaz de producir un conjunto de candidatos, lo que no sería bueno.
¿Existen otras estrategias conocidas para este tipo de problema?