Nombre de usuario, contraseña, salado, cifrado, hash - ¿Cómo funciona todo? [duplicar]

Posible duplicado:
Hash y sal seguros para las contraseñas de PHP

He leído muchas publicaciones en stackoverflow y en otros sitios web que hablan sobre seguridad web. Como el cifrado de salazón, etc. Y no lo entiendo, por lo que una explicación simple sería muy útil.

Así que esto es lo que sé hasta ahora. Un usuario inicia sesión teclea su nombre de usuario y contraseña. La entrada luego pasa por un proceso. Digamos que el nombre de usuario y la contraseña se combinan como por ejemplo:

$username = (USERS USERNAME INPUT);
$password = (USERS PASSWORD INPUT);
$userinput = $username . $password;

Luego le agregamos un poco de sal.

$salt1 = "13$13aVc!kd";
$salt2 = "4kr$!vlmeoc";

$salted = $salt1 . $userinput . $salt2;

Luego lo ciframos.

$encrypted = encrypt($salted);

Luego, verifique con la base de datos y si su usuario correcto inicia sesión.

Así es como funciona, ¿verdad? Pero Iv'e leyó sobre el ataque de fuerza bruta. Adivina los valores de entrada ¿verdad? Con el procedimiento anterior. ¿No muestra que el atacante solo necesita obtener la información de $ userinput correcta para ingresar? ¿No necesita adivinar la larga cadena cifrada de $ correcta?

Nota: Digamos que en esta situación no hay captcha, ningún número de intentos límite, ningún bloqueo, nada más que el anterior.

Nota: sé amable, todavía estoy aprendiendo.