El propósito de la sal es simplemente aumentar el esfuerzo de trabajo involucrado en descifrar los hashes de contraseñas. No pretende ser un secreto, y no puede convertirse en un secreto completo: la aplicación debe poder recuperar tanto la sal como el hash de la base de datos. Además, los mecanismos de hash de contraseñas existentes no separan la sal del hash de tal manera que podría colocarlo en otro lugar; Por lo general, son partes de la misma cadena codificada.
Una buena regla general es asumir que un atacante que puede comprometer su aplicación puede ver toda la información que la aplicación puede ver. Esto incluye toda su base de datos, esquema y código fuente. Cualquier cosa que deba mantenerse en secreto no debe almacenarse de manera reversible en ninguna de estas ubicaciones. (El cifrado de la base de datos es un tema separado y aborda una amenaza diferente).
La mejor manera de proteger las contraseñas de sus usuarios es utilizar un mecanismo de hash de contraseña establecido diseñado con un factor de trabajo alto y / o ajustable, como bcrypt, scrypt, PKBDF2 o PHPass.
- ¿Podemos hacer criptografía o encriptación sin usar una clave?
- ¿Cuál es el proceso de piratería?
- ¿Truecaller es un malware?
- ¿Cómo puede un antivirus detectar un virus de la cavidad?
- ¿Cuánto tiempo lleva rastrear a un hacker normal?