LoginSignup
63
62

More than 5 years have passed since last update.

Javaでパスワードをハッシュ化するのに良い方法を調べてみた

Last updated at Posted at 2014-09-10

Javaでパスワードをハッシュ化するのに良い方法を調べたのでメモしておく

要件・方針

  • 必要な全情報が攻撃者の手に入ってオフラインで解析されても困らない。
  • 強力なHASH関数と、アカウント毎に違うSalt、そしてストレッチングが必要。
  • SaltはHASH化されたパスワードと一緒に保管してOK
  • Saltとストレッチングの処理は、独自実装ではなく既存のアルゴリズムの既存実装使う
    • PBKDF2 とか Bcrypt, Scrypt など。
    • JCA(Java Cryptography Architecture) が利用出来るなら最善だろう。そうでなければ著名プロジェクトの物を使いたい

参考

Javaによる実装

まとめ

  • java7以前なら、Spring SecurityのBcrypt実装を使うのがよさそう。
  • java8以降なら、JCAのPBKDF2をHMAC-SHA-256で利用。またはSpring SecurityのBcrypt実装を使うのがよさそう。

PBKDF2

Bcrypt

参考:http://terasolunaorg.github.io/guideline/public_review/Security/PasswordHashing.html

Scrypt

  • JCAや著名プロジェクトによる実装がない
63
62
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
63
62