Przedmowa: Tworzenie prostej witryny e-commerce. Użytkownicy są automatycznie dodawani podczas rejestracji za pośrednictwem strony rejestracji. Chcę automatycznie szyfrować ich hasła.
Problem: Witryna MySQL pokazuje, jak korzystać z AES_ECRYPT, ale wygląda na to, że dotyczy ustawień typu Terminal, w których administrator ręcznie to zrobił.
Chcę dodać kod do register.php, aby był automatycznie szyfrowany.
Dzięki!
Odpowiedzi:
-1 dla odpowiedzi nr 1Będziesz chciał hash hasła, a nieszyfruj je. Szyfrowanie można cofnąć za pomocą klucza. Hasło, które wpisuje użytkownik, nazywa się hasłem w postaci zwykłego tekstu. NIGDY nie powinno się go zapisywać ani przechowywać w dowolnym miejscu.
Kiedy coś jest mieszane, jest to jeden sposóbtłumaczenie, skrót nie może być łatwo przetłumaczony z powrotem do postaci w postaci zwykłego tekstu, więc kiedy ktoś wpisze swoje hasło, je haszujesz, a następnie porównujesz z hasłem zapisanym w bazie danych.
Kilka algorytmów mieszających to MD5, SHA1 itpPHP, możesz użyć funkcji kryptowania do mieszania hasła. Powinienem zauważyć, że MD5 i SHA1 nie są już tak bezpieczne, ponieważ są bardzo szybkie, co oznacza, że można je brutalnie wymusić dość szybko (istnieją również bazy danych, w których dość szybko można odtworzyć skróty). Powinieneś użyć funkcji kryptograficznej PHP.
tl; dr - Hasła hasłowe, nie szyfruj ich (dla bezpieczeństwa, szczególnie eCommerce).
0 dla odpowiedzi nr 2
Jak podają inne odpowiedzi, nie należy szyfrować haseł. Powinny zostać zaszyfrowane.
Oni powinni NIE posługiwać się MD5
lub SHA
ty POWINIEN posługiwać się bcrypt
Nie należy używać szyfrowania, ponieważ nigdy nie chcesz mieć możliwości odszyfrowania wartości i zobaczenia haseł, ponieważ hakerzy również mogą zrobić to samo.
Hashe są jak szyfrowanie jednokierunkowe, tworzysz hash, a podczas logowania hashujesz hasło, które wprowadzili podczas logowania i porównujesz je z przechowywanym hash.
MD5
i SHA
nie nadają się już do tego, ponieważ komputery są coraz szybsze i mogą wyszukiwać hasła w hasłach i popularne hasła w tempie 60+ miliardów na sekundę.
Ten temat został opisany na śmierć na StackOverflow.
Zobacz, jak korzystać bcrypt
Jak korzystać z bcrypt do mieszania haseł w PHP?
A to dla wyjaśnienia, dlaczego: Bezpieczne hash i sól dla haseł PHP