Webセキュリティの小部屋

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

安全なパスワードの保存方法(Java編)

以下の記事の内容を受け、Java で salt(ソルト)を使用したパスワードと、salt にストレッチングを組み合わせたパスワードを取得する実装を示します。

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

Javaでパスワードのハッシュ値を取得するには、Java の Web アプリケーションフレームワークのデファクトスタンダードである Spring Framework の Spring Security を使用するのがよいでしょう。広く使用されていることと、開発が活発なのがその理由です。

サンプルコードは BCrypt と PBKDF2 の2通りの実装になります。

pom.xml の設定

Spring Framework でパスワード用のハッシュ関数を使用するには、pom.xml に以下の設定を追加する必要があります。

BCrypt の実装

BCrypt の Spring Security の実装は以下のようになります。Spring Boot での実装ですが、パスワードの部分は非常に簡単に実装できることが分かると思います。

このコードの実行結果は、以下のようになります。

PBKDF2 の実装

PBKDF2 は BCrypt とほとんど同じ実装で実現できます。
実装コードは以下のようになります。

このコードの実行結果は、以下のようになります。

 

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

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


スポンサーリンク




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

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



コメントを残す

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

CAPTCHA