モジュール 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を返します。

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

        戻り値:
        派生される鍵の長さ