ブラウザ側で実行する暗号化に関係なく、暗号化キーを使用する必要があります。これは攻撃者が利用できるようになります。そのため、パスワードはカジュアルなオブザーバーに対して暗号化されますが、標的型攻撃に対して追加のセキュリティは提供されません。
パスワードのハッシュバージョンがユーザーの承認/登録に使用されるパスワードになるため、このコンテキストではハッシュは役に立ちません。
この問題の唯一の解決策はSSL証明書です-それらは非常に安価です!
http://en.gandi.net/ssl/grid(アフィリエイトリンクなし)
自己署名証明書を使用することもできます(表示されるブラウザーの警告を信頼するようにユーザーを教育できる場合)。自己署名証明書には、証明書が合法的に調達された(たとえば、中間者攻撃でリモートホストによって提示されたものではない)ブラウザ(およびユーザー)であることを証明する「認証局」がないため「安全でない」としてそれらを却下することでかなり騒々しいです。
MatasanoSecurityにJavascriptSecurityに関する良い記事があります:
ブラウザへのJavascriptの安全な配信は、鶏が先か卵が先かという問題です。
ブラウザのJavascriptは暗号化に対して敵対的です。
Javascriptの「ビューソース」の透明性は幻想です。
これらの問題が修正されるまで、Javascriptは深刻な暗号研究環境ではなく、それに苦しんでいます。