public class PBEKeySpec extends Object implements KeySpec
パスワードは一種の生の鍵データと見なすことができます。パスワードを使用する暗号化メカニズムは、鍵データから暗号化鍵を派生します。
PBE メカニズムが異なると、各パスワード文字のビット数も異なる場合があります。たとえば、PKCS #5 で定義されている PBE メカニズムは、各文字の下位 8 ビットだけを使用し、PKCS #12 では、各文字の 16 ビットすべてを使用します。
該当する秘密鍵ファクトリのインスタンスを生成して、パスワード文字を PBE 鍵に変換します。たとえば、PKCS #5 の秘密鍵ファクトリは各パスワード文字の下位 8 ビットだけから PBE 鍵を構築し、PKCS #12 の秘密鍵ファクトリは各文字の 16 ビットすべてをとります。
また、このクラスは、パスワードを String
オブジェクト (これの方が論理的に思えるかもしれない) ではなく char 配列として格納します。これは、String クラスは変更不可能なので、格納されているパスワードが必要なくなったときに内部値を上書きする方法がないためです。つまり、このクラスは、パスワードを char 配列として要求するので、完了時に上書きできます。
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()
繰り返し処理の回数を返します。指定がない場合は 0 を返します。
|
int |
getKeyLength()
派生される鍵の長さを返します。指定がない場合は 0 を返します。
|
char[] |
getPassword()
パスワードのコピーを返します。
|
byte[] |
getSalt()
salt のコピーを返します。指定がない場合は null を返します。
|
public PBEKeySpec(char[] password)
注:password
は、複製されてから新しい PBEKeySpec
オブジェクトに格納されます。
password
- パスワード。public PBEKeySpec(char[] password, byte[] salt, int iterationCount, int keyLength)
password
に null が指定された場合は、空の char[] が使用されます。
注:password
および salt
は、複製されてから新しい PBEKeySpec
オブジェクトに格納されます。
password
- パスワード。salt
- ソルト。iterationCount
- 反復数。keyLength
- 派生される鍵の長さ。NullPointerException
- salt
が null である場合。IllegalArgumentException
- salt
が空、つまり長さ 0 である場合、iterationCount
または keyLength
が正でない場合。public PBEKeySpec(char[] password, byte[] salt, int iterationCount)
password
に null が指定された場合は、空の char[] が使用されます。
注:password
および salt
は、複製されてから新しい PBEKeySpec
オブジェクトに格納されます。
password
- パスワード。salt
- ソルト。iterationCount
- 反復数。NullPointerException
- salt
が null である場合。IllegalArgumentException
- salt
が空、つまり長さ 0 である場合、または iterationCount
が正でない場合。public final void clearPassword()
public final char[] getPassword()
注:このメソッドは、パスワードのコピーを返します。不要になったパスワード情報をゼロにする (消去する) のは、呼び出し元の責任です。
IllegalStateException
- clearPassword
メソッドを呼び出してパスワードがクリアされた場合。public final byte[] getSalt()
注:このメソッドは、ソルトのコピーを返します。不要になったソルト情報をゼロにする (消去する) のは、呼び出し側の責任です。
public final int getIterationCount()
public final int getKeyLength()
注:これは、可変鍵サイズ暗号の鍵の長さの設定を示すのに使用されます。実際の鍵サイズは各プロバイダの実装によって異なります。
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.