Zazwyczaj nie ma potrzeby odwrotnego szyfrowania hasła. Posiadanie tej zdolności z natury obniża bezpieczeństwo systemu. Zamiast tego użyj nieodwracalnej funkcji skrótu. Proponuję SHA-256 (lub większy), który daje wynik w postaci ciągu:
SHA2 (CONCAT (user.name, user.password, 'some salt', user.id), 256)
Sfrustrowałem też masowe tęczowe tabele od jakiegokolwiek użycia poprzez wprowadzenie innych danych zawsze znanych w czasie sprawdzania hasła.
SHA2
wymaga MySQL 5.5 lub nowszego. Jeśli używasz wcześniejszej wersji, SHA1()
jest prawie tak dobry i ogólnie znacznie lepszy niż MD5
, AES
itp.