2011-09-17 5 views
1

2つのハッシュアルゴリズムSHAとMD5のうち、.NET MVC 3で実装するのが最も簡単なものです。簡単に言うと、実装するオーバーヘッドと時間は最小限です。SHAとMD5などMVC3の最小オーバーヘッド実装とは何ですか?

私は議論が安全であることを知っていますが、それは問題ではありませんが、私はまだそれがどれになるのか興味があります。そして、より使いやすい別のものがあれば、それはどちらですか?

私はサイト認証用のアルゴリズムをハッシュすることに新しいので、私はそれに行く前に自分の研究を確実にしたいと思っています。

また、.NETまたはMVCに何かのサポートが組み込まれている場合、それは何ですか?

ありがとうございます。

+4

SHAとMD5は暗号化されていません。それらは一方向ハッシュです。 – driis

+0

ありがとう、私はこれを知っていたが、それについて本当に考えなかった。 – TheJediCowboy

答えて

3

System.Security.Cryptography.MD5およびSystem.Security.Cryptography.SHA256を参照してください。

.NETフレームワークで実装されているハッシングアルゴリズムのリストは、hereです。

さらに、this blog postをチェックして、独自の認証方式を使用するヒントを確認する必要があります。

多くの場合、Bcryptはパスワードをハッシュするのに適しており、その.NETポートはhereです。しかし、私はこのプロジェクトに外部のコードレビューがあったかどうかは分からないので、尋ねる価値があるかもしれません。

パスワードを保存するためにbcryptが推奨される理由についての優れた投稿:http://codahale.com/how-to-safely-store-a-password/

少なくともオーバーヘッドに関しては、それは本当に懸念すべきではありません。ウェブサイトやサービスが「オーバーヘッドが少なくて済む」ため、パスワードが最も弱いハッシュアルゴリズムを使用して保存されることは決してありません。

1

コメントに記載されているとおり、SHAとMD5は暗号化ではありません。しかし一方向ハッシュが必要な場合は、SHAバリアントの1つが最も安全です。

「最小オーバーヘッド」とは、コードで実装するのが最も簡単なものを指していれば同じです。 .NETでSHAとMD5は同じ基本クラスHashAlgorithmを共有します。これはあなたがプログラムすることができます。

「最小オーバーヘッド」とは、時間やスペースの消費を計算することを意味します。MD5が勝者です。しかし、MD5はSHAの変種よりもはるかに弱いことを覚えておいてください。今日の実用的なアプリケーションでは、時間もスペースも問題にならないでしょう。

1

自分のサイトにハッシュや塩などのパスワードをまったく保存しないことをお勧めします。 OpenIDプロバイダやMozilla Labsの新しいBrowserIDなどの変種を使用している場合、私はあなたがもっと良いと思っています。

関連する問題