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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。