java.lang.Object
javax.crypto.spec.SecretKeySpec
- 所有已实现的接口:
-
Serializable
,Key
,KeySpec
,SecretKey
,Destroyable
此类以与提供程序无关的方式指定秘密密钥。
它可用于从字节数组构造SecretKey
,而无需经过(基于提供程序的)SecretKeyFactory
。
此类仅适用于可以表示为字节数组且没有与之关联的密钥参数的原始密钥,例如DES或Triple DES密钥。
- 自从:
- 1.4
- 参见:
-
Constructor Summary
ConstructorDescriptionSecretKeySpec
(byte[] key, int offset, int len, String algorithm) 使用给定字节数组构造秘密密钥,使用key
中的前len
字节,从offset
开始包括。SecretKeySpec
(byte[] key, String algorithm) 使用给定字节数组构造秘密密钥。 -
Method Summary
Modifier and TypeMethodDescriptionboolean
测试指定对象和此对象之间的相等性。返回与此秘密密钥关联的算法的名称。byte[]
返回此秘密密钥的密钥材料。返回此秘密密钥的编码格式的名称。int
hashCode()
为对象计算哈希码值。相等的对象也将具有相同的哈希码。Methods declared in class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods declared in interface javax.security.auth.Destroyable
destroy, isDestroyed
-
Constructor Details
-
SecretKeySpec
使用给定字节数组构造秘密密钥。此构造函数不检查给定的字节是否确实指定了指定算法的秘密密钥。例如,如果算法是DES,则此构造函数不检查
key
是否为8字节长,并且也不检查弱密钥或半弱密钥。为执行这些检查,应使用特定于算法的密钥规范类(在本例中为:DESKeySpec
)。- 参数:
-
key
- 秘密密钥的密钥材料。数组的内容会被复制以防止后续修改。 -
algorithm
- 要与给定密钥材料关联的秘密密钥算法的名称。有关标准算法名称的信息,请参阅Java安全标准算法名称文档。 - 抛出:
-
IllegalArgumentException
- 如果algorithm
为null或key
为null或为空。
-
SecretKeySpec
使用给定字节数组构造秘密密钥,使用key
中的前len
字节,从offset
开始包括。构成秘密密钥的字节是
key[offset]
和key[offset+len-1]
之间的字节。此构造函数不检查给定的字节是否确实指定了指定算法的秘密密钥。例如,如果算法是DES,则此构造函数不检查
key
是否为8字节长,并且也不检查弱密钥或半弱密钥。为执行这些检查,必须使用特定于算法的密钥规范类(在本例中为:DESKeySpec
)。- 参数:
-
key
- 秘密密钥的密钥材料。从offset
开始的数组的前len
字节会被复制以防止后续修改。 -
offset
- 密钥材料开始的偏移量。 -
len
- 密钥材料的长度。 -
algorithm
- 要与给定密钥材料关联的秘密密钥算法的名称。有关标准算法名称的信息,请参阅Java安全标准算法名称文档。 - 抛出:
-
IllegalArgumentException
- 如果algorithm
为null或key
为null、空或太短,即key.length-offset<len
。 -
ArrayIndexOutOfBoundsException
- 如果offset
或len
索引字节超出key
。
-
-
Method Details
-
getAlgorithm
返回与此秘密密钥关联的算法的名称。- 指定者:
-
getAlgorithm
在接口Key
中 - 返回:
- 秘密密钥算法。
-
getFormat
返回此秘密密钥的编码格式的名称。 -
getEncoded
public byte[] getEncoded()返回此秘密密钥的密钥材料。- 指定者:
-
getEncoded
在接口Key
中 - 返回:
- 密钥材料。每次调用此方法时都会返回一个新数组。
-
hashCode
public int hashCode()为对象计算哈希码值。相等的对象也将具有相同的哈希码。 -
equals
测试指定对象和此对象之间的相等性。如果两个SecretKeySpec对象都是具有相同不区分大小写的算法名称和密钥编码的SecretKey实例,则它们被视为相等。
-