Я смотрю на реализацию аутентификации CRAM-MD5 для сервера IMAP и SMTP. Проблема в том, что CRAM, кажется, требует, чтобы в любое время был доступен открытый текстовый пароль. Сервер отправляет клиенту уникальный вызов, а клиент возвращает:
MD5( MD5(password, challenge), MD5( password ) )
Я не вижу способа проверить это без пароля с открытым текстом, в спецификации не сказано, что имеет , чтобы иметь его в наличии, но это только кажется логичным.
Единственное решение, которое я могу придумать, - это зашифровать (правильно зашифровать, а не хешировать) пароль в базе данных (возможно, используя AES на основе ключа RSA, поскольку у меня уже есть с этим что-то для решения проблемы) и расшифровать его, когда мне нужно Сравнение кажется очень медленным, так как для каждого входа в систему по SMTP и IMAP потребуется расшифровка и хеширование.
Это лучшее решение / наиболее эффективное решение?
Или, что еще лучше, CRAM устарел сейчас, потому что теперь менее безопасная аутентификация по проводам обеспечивается с помощью SSL?