モジュール java.base
パッケージ javax.crypto.spec

クラス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を返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • 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を返します。

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

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