モジュール java.base
パッケージ 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
    関連項目:
    SecretKeyFactory, PBEParameterSpec
    • コンストラクタのサマリー

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

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

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

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