Powiedz, że moje hasło to abc
. Chcę wysłać go do serwera przez HTTP.
Mógłbym wysłać go w postaci zwykłego tekstu i pozwolić serwerowi go zaszyfrować i porównać z wpisami w swojej bazie danych, ale wtedy każdy, kto może zobaczyć ruch przez to połączenie zobaczyłby hasło w postaci zwykłego tekstu.
Więc mógłbym wtedy zaszyfrować je po stronie klienta i pozwolić serwerowi po prostu porównać je bez mieszania, ponieważ jest już zaszyfrowane (lub serwer mógłby nawet podwoić hash, ale bez różnicy w ta sytuacja). Ale z drugiej strony każdy, kto widzi ruch, zobaczy zaszyfrowane hasło, a następnie wyśle zaszyfrowane hasło do serwera, a serwer je zaakceptuje.
Jak wysyłać hasła przez HTTP? Czy muszę zaimplementować jakiś algorytm szyfrowania, taki jak szyfrowanie z kluczem publicznym RSA? A może to niemożliwe?
Metoda powinna być dostępna w każdej przeglądarce.