java.lang.Object
javax.crypto.spec.SecretKeySpec
- すべての実装されたインタフェース:
Serializable
,Key
,KeySpec
,SecretKey
,Destroyable
public class SecretKeySpec extends Object implements KeySpec, SecretKey
プロバイダに依存しない形式で秘密キーを指定します。
このクラスを使用して、バイト配列からSecretKey
を構築することができ、プロバイダ・ベースのSecretKeyFactory
を使用する必要がありません。
このクラスは、バイト配列として表すことができ、DESやTriple DESキーなど、秘密キーに関連したキー・パラメータがない生の秘密キーに対してだけ有効です。
- 導入されたバージョン:
- 1.4
- 関連項目:
SecretKey
,SecretKeyFactory
, 直列化された形式
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 SecretKeySpec(byte[] key, int offset, int len, String algorithm)
offset
から始まるkey
の最初のlen
バイトを使用して、指定されたバイト配列から秘密キーを構築します。SecretKeySpec(byte[] key, String algorithm)
指定されたバイト配列から秘密キーを構築します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 boolean
equals(Object obj)
指定されたオブジェクトとこのオブジェクトが等価であるかどうかをテストします。String
getAlgorithm()
この秘密キーに関連付けられているアルゴリズム名を返します。byte[]
getEncoded()
この秘密キーのキー・データを返します。String
getFormat()
この秘密キーの符号化形式の名前を返します。int
hashCode()
オブジェクトのハッシュ・コード値を計算します。
-
コンストラクタの詳細
-
SecretKeySpec
public SecretKeySpec(byte[] key, String algorithm)指定されたバイト配列から秘密キーを構築します。このコンストラクタは、指定されたバイトが指定されたアルゴリズムの秘密キーを実際に指定するかどうかは判定しません。 たとえば、アルゴリズムがDESの場合、このコンストラクタは
key
が8バイトの長さであるかどうかを判定せず、弱または半弱のキーであるかどうかも判定しません。 これらの判定を行うためには、アルゴリズム固有のキー仕様クラス(この場合はDESKeySpec
)を使用する必要があります。- パラメータ:
key
- 秘密キーのキー・データ。 この配列の内容は、後続の変更に影響されないようにコピーされる。algorithm
- 指定されたキー・データに関連する秘密キーアルゴリズムの名前。 標準的なアルゴリズム名については、「Javaセキュリティ標準アルゴリズム名」のドキュメントを参照してください。- 例外:
IllegalArgumentException
-algorithm
がnull、あるいはkey
がnullまたは空の場合。
-
SecretKeySpec
public SecretKeySpec(byte[] key, int offset, int len, String algorithm)offset
から始まるkey
の最初のlen
バイトを使用して、指定されたバイト配列から秘密キーを構築します。秘密キーを構成するバイトは、
key[offset]
からkey[offset+len-1]
までのバイトです。このコンストラクタは、指定されたバイトが指定されたアルゴリズムの秘密キーを実際に指定するかどうかは判定しません。 たとえば、アルゴリズムがDESの場合、このコンストラクタは
key
が8バイトの長さであるかどうかを判定せず、弱または半弱のキーであるかどうかも判定しません。 これらの判定を行うためには、アルゴリズム固有のキー仕様クラス(この場合はDESKeySpec
)を使用する必要があります。- パラメータ:
key
- 秘密キーのキー・データ。 配列のoffset
から始まる最初のlen
バイトは、後続の変更に影響されないようにコピーされる。offset
- キー・データが始まるkey
内のオフセット。len
- キー・データの長さ。algorithm
- 指定されたキー・データに関連する秘密キーアルゴリズムの名前。 標準的なアルゴリズム名については、「Javaセキュリティ標準アルゴリズム名」のドキュメントを参照してください。- 例外:
IllegalArgumentException
-algorithm
がnull、あるいはkey
がnull、空、または短すぎる(つまりkey.length-offset<len
)場合。ArrayIndexOutOfBoundsException
-offset
またはlen
のインデックス・バイトがkey
の範囲内にない場合スローされる。
-
-
メソッドの詳細
-
getAlgorithm
public String getAlgorithm()この秘密キーに関連付けられているアルゴリズム名を返します。- 定義:
getAlgorithm
、インタフェース:Key
- 戻り値:
- 秘密キーアルゴリズム
-
getFormat
public String getFormat()この秘密キーの符号化形式の名前を返します。 -
getEncoded
public byte[] getEncoded()この秘密キーのキー・データを返します。- 定義:
getEncoded
、インタフェース:Key
- 戻り値:
- キー・データ。 このメソッドが呼び出されるたびに新しい配列を返す。
-
hashCode
public int hashCode()オブジェクトのハッシュ・コード値を計算します。 等しいオブジェクトはハッシュ・コードも同じです。- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- このオブジェクトのハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
equals
public boolean equals(Object obj)指定されたオブジェクトとこのオブジェクトが等価であるかどうかをテストします。 2つのSecretKeySpecオブジェクトは、どちらも同じ大文字と小文字を区別しないアルゴリズム名とキーのエンコーディングを持つSecretKeyインスタンスであれば等しいと見なされます。- オーバーライド:
equals
、クラス:Object
- パラメータ:
obj
- このオブジェクトと等しいかどうかが判定されるオブジェクト。- 戻り値:
- オブジェクトが等しいと見なされた場合はtrue、それ以外の場合、または
obj
がnullの場合はfalse。 - 関連項目:
Object.hashCode()
、HashMap
-