Por lo general, no hay una necesidad real de revertir el cifrado de una contraseña. Tener esa capacidad inherentemente disminuye la seguridad del sistema. En su lugar, utilice una función hash irreversible. Sugiero SHA-256 (o más grande) que produce un resultado de cadena:
SHA2 (CONCAT (user.name, user.password, 'some salt', user.id), 256)
También he frustrado las rainbow tables a granel. de ser útil al incluir otros datos siempre conocidos en el momento de la validación de la contraseña.
SHA2
requiere MySQL 5.5 o posterior. Si está utilizando una versión anterior, SHA1()
es casi tan bueno y generalmente mucho mejor que MD5
, AES
, etc.