JavaTM 2
Platform
Std. Ed. v1.4.0

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
関連項目:
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 を生成するために派生される鍵の長さをとるコンストラクタです。
 
メソッドの概要
 void clearPassword()
          パスワードの内部コピーをクリアします。
 int getIterationCount()
          繰り返し数を返します。
 int getKeyLength()
          派生される鍵の長さを返します。
 char[] getPassword()
          パスワードのコピーを返します。
 byte[] getSalt()
          ソルトのコピーを返します。
 
クラス 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()
ソルトのコピーを返します。指定されていない場合は null を返します。

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

戻り値:
ソルト

getIterationCount

public final int getIterationCount()
繰り返し数を返します。指定されていない場合は 0 を返します。

戻り値:
繰り返し数

getKeyLength

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

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

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

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.