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.