Nazwa użytkownika, hasło, solenie, szyfrowanie, hash - jak to wszystko działa? [duplikować]

Możliwy duplikat:
Zabezpiecz hash i sól dla haseł PHP

Iv'e czyta wiele postów zarówno w stackoverflow, jak iw innych witrynach internetowych mówiących o bezpieczeństwie sieci. Takie jak solenie szyfrowania itp. I nie rozumiem tego, więc proste wyjaśnienie byłoby naprawdę pomocne.

Oto co wiem do tej pory. Użytkownik rejestruje typy swojej nazwy użytkownika i hasła. Wejście przechodzi następnie przez proces. Powiedzmy, że nazwa użytkownika i hasło są połączone jak na przykład:

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

Następnie dodajemy trochę soli.

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

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

Następnie szyfrujemy go.

$encrypted = encrypt($salted);

Następnie sprawdź w bazie danych i czy prawy użytkownik zostanie zalogowany.

Tak to działa? Ale Iv'e przeczytał o ataku z użyciem brutalnej siły. Zgaduje wartości wejściowe, prawda? Z powyższą procedurą. Czy to nie pokazuje, że atakujący musi tylko uzyskać poprawne dane $ userinput, aby się dostać? Nie musi odgadnąć, czy długi $ zaszyfrowany ciąg jest poprawny?

Uwaga: Powiedzmy, że w tej sytuacji nie ma captcha, nie ma limitu prób, nie ma blokady, nic poza tym powyżej.

Uwaga: Bądź delikatny Nadal się uczę.

questionAnswers(5)

yourAnswerToTheQuestion