Estaba leyendo una respuesta de Terry Chia a otra pregunta sobre los requisitos para una sal, en la que él / ella (entre otros) especificó que las sales deben ser únicas a nivel mundial, pero no especifiquemos por qué. Esto se definió como "no solo único en el contexto de su base de datos, sino único en el contexto de cada base de datos única que existe". Por ejemplo, he estado usando una dirección de correo electrónico como sal para mi sitio web / base de datos de Sandbox de experimentos. Estos podrían ser utilizados como sales en otros sitios web.
No tiene sentido para mí porque, según tengo entendido, el propósito de la sal es garantizar que "descifrar múltiples hashes de contraseña comprometidos no sea más fácil que agrietar cada uno de ellos por separado" (Ilmari Karonen, más abajo en el mismo post). A menos que me equivoque, esta restricción se cumple siempre y cuando mis sales sean únicas dentro de mi base de datos.
Estoy más confundido porque la generación de sales únicas a nivel mundial me parece imposible de controlar. ¿Cómo se supone que puedo garantizar que ninguna de mis sales se haya usado alguna vez en el sitio de otra persona, con los millones de sitios disponibles? Para ser justos, todavía no he investigado cómo generar sales aleatorias; tal vez la idea es que se crean a partir de un grupo lo suficientemente grande que, incluso teniendo en cuenta la cantidad de sitios que existen, las sales duplicadas generadas para bases de datos separadas es muy poco probable?
Definitivamente estoy predispuesto a usar una dirección de correo electrónico como mi sal, ya que es un paso de trabajo menos pequeño, pero dada la cantidad de personas que parecen estar en desacuerdo con este enfoque, reconozco que probablemente estoy equivocado. Y además, quiero saber más sobre por qué me equivoco porque todavía no tiene sentido.