Cześć.
Używam springMVC, hibernate, mysql.
Zastanawiam się jaki typ danych w bazie danych powinno mieć pole "haslo" tabeli np User.
Poskakałem trochę po googlach i wyczytałem że jeśli zastosuje się algorytm MD5 do szyfrowania hasła to najlepsze jest Char (32).
Tak też zrobiłem.
Teraz tworzę model obiektu User w javie do którego dodałem adnotacje potrzebne dla hibernate. Zastanawiam się tylko jaki typ danych powinno mieć tutaj pole password?
Teoretycznie wydaje mi się że to samo.
Stworzyłem więc
char[] password = new char[32];
I teraz 2 sprawy:
-
Jak to później poskładać? Mam UserDao, UserDaoImpl, UserService,UserServiceImpl. W którym miejscu powinno odbyć się szyfrowanie? Wydaje mi się że w UserServiceImpl. Wykonywana jest metoda szyfrująca a potem metoda add(user).
-
Jeśli tak zrobię to będzie mi się sypał controler gdyż:
@RequestMapping(value="/user/add",method=RequestMethod.POST)
public String addUser(@ModelAttribute("user") User user)
Coś takiego nie przejdzie gdyż z formularza będzie pobierał String a nie Char.
Chyba że kompletnie się za to źle zabieram to wówczas proszę o pomoc od początku.
Zdaje sobie sprawę że pytanie może głupie i czegoś nie rozumiem ale jak na razie zapisywałem w bazie za pośrednictwem springMVC + hibernate proste obiekty.
Z góry dzięki.