Можно ли не передавать пароль на сервер, а шифровать им соединение (например, через сокеты)? Почему нет веб-приложений, которые используют примерно такую схему безопасности: p - пароль, F(p) - функция высшего порядка, которая принимает на вход пароль и возвращает функцию, шифрующую (синхронным шифрованием) текст при помощи пароля, вродеfunction getEncoder(password){ return function(message){ return encode(message, hash(password)); } } На сервер отправляется сообщение формата {login, F(p)(login)}, на сервере так же хранится хэш пароля, при помощи которого и расшифровывается. Если нужно увеличить сложность - можно использовать в качестве ключа что-то вроде (uniq_salt передается с сервера, для каждого соединения новая) blowfish(blowfish(uniq_salt) XOR blowfish(password)), например. Достаточно длинная соль сделает подбор практически нереальным. Все дальнейшее общение между сервером и клиентом идет уже зашифрованным, пароль не передается, вроде все безопасно, нет? Я не криптограф, объясните мне, в чем я не прав, или почему это не делают, пожалуйста.