Hola a todos...
estoy investigando sobre los sistemas PHP para encriptar contraseñas antes de almacenarlas en a base de datos, y me surge una duda respecto a lo siguiente.
Por ejemplo... sha1 ($password), u otros sistemas que he visto, usan el término SALT como una cadena que se añade a la contraseña antes de pasarla a la función de encriptado.
¿Qué consequimos con esto? Por lo que yo veo, básicamente se trata de hacer la contraseña introducida más larga. ¿no podemos, y sería más seguro, que exijamos contraseñas más largas para que el usuario la escoja, que hacerlo nosotros mismos? Además, para luego comprobar la contraseña si es correcta o no, tengo que tener en cuenta esa cadena, que debería ser constante o almacenarla en algún lado para luego usarla... lo que lleva a que, por ejemplo, si la almaceno, y un atacante consigue entrar a mi base de datos, tiene acceso a ella, por lo que la supuesta seguridad añadida ya no es tal.
¿Qué objeto tiene entonces esa semilla o o salt?
Gracias... un saludo