Обычно я предпочитаю хранить пароли в виде хэшей, которые невозможно восстановить, а не в качестве зашифрованных элементов, которые можно расшифровать.
Вычисляя хеш из строки, предоставленной посетителем (плюс, конечно, немного соли), я могу сказать, предоставил ли пользователь один и тот же пароль дважды, без риска для безопасности, позволяющей моему приложению иметь возможность расшифровать предоставленный пароль. возможно злонамеренно.
Мне кажется, что encode () и decode (), вероятно, являются хорошими решениями, когда вы хотите, чтобы данные были восстанавливаемыми, но что невосстановимые хеши (использующие Crypt :: MD5) - лучший подход для сохраненных паролей.