Вы можете использовать Javascript, но тогда вы (1) должны безопасно передать Javascript пользователю и (2) обменяться ключами для шифрования.
Хотя защита пароля имеет определенную ценность, если сеанс SSL скомпрометирован, MITM может перехватить сеанс и все данные или предложить пользователю изменить свой пароль и просто собрать его.
Вы можете использовать OpenId, но тогда вы только перенесете проблему аутентификации на сервер OpenId. Вам все еще нужен способ получить секрет пользователя на сервер.
Так что, как правило, рекомендуется использовать открытые текстовые пароли через SSL для создания нового аутентифицированного сеансового cookie. Все остальное сводится к вашей первоначальной общей секретной проблеме или к веб-браузеру, не имеющему ничего, кроме SSL, для работы.