Почему нет веб-приложений, которые используют примерно такую схему безопасности:
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)), например. Достаточно длинная соль сделает подбор практически нереальным.
Все дальнейшее общение между сервером и клиентом идет уже зашифрованным, пароль не передается, вроде все безопасно, нет?
Я не криптограф, объясните мне, в чем я не прав, или почему это не делают, пожалуйста.