Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから
公開日:2013年2月27日
最終更新日:2019年2月10日

安全なパスワードの保存方法(ASP.NET,C#,VB.NET編)

以下の記事の内容を受け、ASP.NET(C#,VB.NET) で salt(ソルト)を使用したパスワードと、salt にストレッチングを組み合わせた方法の具体的なコードを示します。

salt にストレッチングを組み合わせる方法ですが、その実装方法としては専用のハッシュ関数を使用することが現在は推奨されます。

なお、サンプルコードは C# のみとなります。

BCrypt

.NET で BCrypt の実装を行うには、BCrypt.Net (MIT ライセンス) を使用することが簡単です。

以下の実装は、.NET Core 2.1 のコンソールアプリケーションに、Nuget から BCrypt.Net-Next をインストールしたものになります。

PBKDF2 の実装

.NET で PBKDF2 を実装するには、System.Security.Cryptography.Rfc2898DeriveBytes を使用します。

.NET の標準機能で実装できますが、若干手間がかかります。

ソルトとハッシュ値の両方を保存する必要があります。

以下の実装は、.NET Core 2.1 のコンソールアプリケーションになります。

実行結果は以下のようになります。

2019年1月現在、パスワードのハッシュ化は独自実装するのではなく、ハッシュ関数を使用することが推奨されています。

そのため、以下のコードは現在では推奨されないコードになります。

・C#

・VB.NET


スポンサーリンク




カテゴリー:Webアプリケーションセキュリティ

Twitter でも、いろんな情報を発信しています。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA