Normalmente, não há necessidade real de reverter a criptografia de uma senha. Ter essa capacidade diminui inerentemente a segurança do sistema. Em vez disso, use uma função de hash irreversível. Sugiro SHA-256 (ou maior) que produz um resultado de string:
SHA2 (CONCAT (user.name, user.password, 'some salt', user.id), 256)
Também frustrei as rainbow tables em massa de ser útil ao inserir outros dados sempre conhecidos no momento da validação da senha.
SHA2
requer MySQL 5.5 ou posterior. Se você estiver usando uma versão anterior, SHA1()
é quase tão bom e geralmente muito melhor que MD5
, AES
, etc