クラスPBEKeySpec

java.lang.Object
javax.crypto.spec.PBEKeySpec
すべての実装されたインタフェース:
KeySpec

public class PBEKeySpec extends Object implements KeySpec
パスワードベースの暗号化(PBE)で使用できる、ユーザーが選択したパスワードです。

パスワードは一種の生のキー・データと見なすことができます。パスワードを使用する暗号化メカニズムは、キー・データから暗号化キーを派生します。

PBEメカニズムが異なると、各パスワード文字のビット数も異なる場合があります。 たとえば、PKCS#5で定義されているPBEメカニズムは、各文字の下位8ビットだけを使用し、PKCS#12では、各文字の16ビットすべてを使用します。

パスワード文字をPBEキーに変換するには、適切な秘密キー・ファクトリのインスタンスを作成します。 たとえば、PKCS #5の秘密鍵ファクトリは、各パスワード文字の下位8ビットのみからPBE鍵を構築し、PKCS #12の秘密鍵ファクトリは各文字の16ビットすべてを取ります。

また、このクラスは、パスワードをStringオブジェクト(この方が論理的に思えるかもしれません)ではなくchar配列として格納します。これは、Stringクラスは変更不可能なので、格納されているパスワードが必要なくなったときに内部値を上書きする方法がないためです。 つまり、このクラスは、パスワードをchar配列として要求するので、完了時に上書きできます。

導入されたバージョン:
1.4
外部仕様
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    PBEKeySpec(char[] password)
    パスワードをとるコンストラクタです。
    PBEKeySpec(char[] password, byte[] salt, int iterationCount)
    パスワード、ソルト、および固定キー・サイズのPBE暗号のPBEKeyを生成するための繰返し数をとるコンストラクタです。
    PBEKeySpec(char[] password, byte[] salt, int iterationCount, int keyLength)
    パスワード、ソルト、繰返し数、および可変キー・サイズのPBE暗号のPBEKeyを生成するために派生されるキーの長さをとるコンストラクタです。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    final void
    パスワードの内部コピーをクリアします。
    final int
    繰返し処理の回数を返します。指定がない場合は0を返します。
    final int
    派生されるキーの長さを返します。指定がない場合は0を返します。
    final char[]
    パスワードのコピーを返します。
    final byte[]
    saltのコピーを返します。指定がない場合はnullを返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • PBEKeySpec

      public PBEKeySpec(char[] password)
      パスワードをとるコンストラクタです。 nullが指定された場合は、空のchar[]が使用されます。

      ノート: passwordは、複製されてから新しいPBEKeySpecオブジェクトに格納されます。

      パラメータ:
      password - パスワード。
    • PBEKeySpec

      public PBEKeySpec(char[] password, byte[] salt, int iterationCount, int keyLength)
      パスワード、ソルト、繰返し数、および可変キー・サイズのPBE暗号のPBEKeyを生成するために派生されるキーの長さをとるコンストラクタです。 passwordにnullが指定された場合は、空のchar[]が使用されます。

      ノート: passwordおよびsaltは、複製されてから新しいPBEKeySpecオブジェクトに格納されます。

      パラメータ:
      password - パスワード。
      salt - ソルト。
      iterationCount - 反復数。
      keyLength - 派生されるキーの長さ。
      スロー:
      NullPointerException - saltがnullである場合。
      IllegalArgumentException - saltが空、つまり長さ0である場合、iterationCountまたはkeyLengthが正でない場合。
    • PBEKeySpec

      public PBEKeySpec(char[] password, byte[] salt, int iterationCount)
      パスワード、ソルト、および固定キー・サイズのPBE暗号のPBEKeyを生成するための繰返し数をとるコンストラクタです。 passwordにnullが指定された場合は、空のchar[]が使用されます。

      ノート: passwordおよびsaltは、複製されてから新しいPBEKeySpecオブジェクトに格納されます。

      パラメータ:
      password - パスワード。
      salt - ソルト。
      iterationCount - 反復数。
      スロー:
      NullPointerException - saltがnullである場合。
      IllegalArgumentException - saltが空、つまり長さ0である場合、またはiterationCountが正でない場合。
  • メソッドの詳細

    • clearPassword

      public final void clearPassword()
      パスワードの内部コピーをクリアします。
    • getPassword

      public final char[] getPassword()
      パスワードのコピーを返します。

      ノート: このメソッドは、パスワードのコピーを返します。 不要になったパスワード情報をゼロにする(消去する)のは、呼出し元の責任です。

      戻り値:
      パスワード
      スロー:
      IllegalStateException - clearPasswordメソッドを呼び出してパスワードがクリアされた場合。
    • getSalt

      public final byte[] getSalt()
      saltのコピーを返します。指定がない場合はnullを返します。

      ノート: このメソッドは、ソルトのコピーを返します。 不要になったソルト情報をゼロにする(消去する)のは、呼出し側の責任です。

      戻り値:
      ソルト。
    • getIterationCount

      public final int getIterationCount()
      繰返し処理の回数を返します。指定がない場合は0を返します。
      戻り値:
      繰返し数
    • getKeyLength

      public final int getKeyLength()
      派生されるキーの長さを返します。指定がない場合は0を返します。

      ノート: これは、可変キー・サイズ暗号のキーの長さの設定を示すのに使用されます。 実際のキー・サイズは各プロバイダの実装によって異なります。

      戻り値:
      派生されるキーの長さ