- java.lang.Object
-
- javax.crypto.spec.SecretKeySpec
-
- 实现的所有接口
-
Serializable
,Key
,KeySpec
,SecretKey
,Destroyable
public class SecretKeySpecextends Objectimplements KeySpec, SecretKey
此类以独立于提供者的方式指定密钥。它可用于从字节数组构造
SecretKey
,而无需通过(基于提供程序的)SecretKeyFactory
。此类仅对可以表示为字节数组且没有与之关联的关键参数的原始密钥有用,例如DES或Triple DES密钥。
- 从以下版本开始:
- 1.4
- 另请参见:
-
SecretKey
,SecretKeyFactory
, Serialized Form
-
-
构造方法摘要
构造方法 构造器 描述 SecretKeySpec(byte[] key, int offset, int len, String algorithm)
使用len
的第一个len
字节构造来自给定字节数组的key
,从offset
开始。SecretKeySpec(byte[] key, String algorithm)
从给定的字节数组构造一个密钥。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 boolean
equals(Object obj)
测试指定对象与此对象之间的相等性。String
getAlgorithm()
返回与此密钥关联的算法的名称。byte[]
getEncoded()
返回此密钥的密钥材料。String
getFormat()
返回此密钥的编码格式的名称。int
hashCode()
计算对象的哈希码值。-
声明方法的接口 javax.security.auth.Destroyable
destroy, isDestroyed
-
-
-
-
构造方法详细信息
-
SecretKeySpec
public SecretKeySpec(byte[] key, String algorithm)
从给定的字节数组构造一个密钥。此构造函数不检查给定的字节是否确实指定了指定算法的密钥。 例如,如果算法是DES,则此构造函数不检查
key
是否为8字节长,并且也不检查弱键或半弱键。 为了执行这些检查,应该使用特定于算法的密钥规范类(在这种情况下:DESKeySpec
)。- 参数
-
key
- 密钥的密钥材料。 复制数组的内容以防止后续修改。 -
algorithm
- 与给定密钥材料关联的密钥算法的名称。 有关标准算法名称的信息,请参见Java Security Standard Algorithm Names文档。 - 异常
-
IllegalArgumentException
- 如果algorithm
为空或key
为空或空。
-
SecretKeySpec
public SecretKeySpec(byte[] key, int offset, int len, String algorithm)
使用len
的第一个len
字节构造来自给定字节数组的key
,从offset
开始。构成密钥的字节是
key[offset]
和key[offset+len-1]
之间的字节。此构造函数不检查给定的字节是否确实指定了指定算法的密钥。 例如,如果算法是DES,则此构造函数不检查
key
是否key
为8个字节,并且也不检查弱键或半弱键。 为了执行这些检查,必须使用特定于算法的密钥规范类(在这种情况下:DESKeySpec
)。- 参数
-
key
- 密钥的密钥材料。 将复制以offset
开头的数组的第一个len
字节,以防止后续修改。 -
offset
- 密钥材料开始的key
中的偏移量。 -
len
- 密钥材料的长度。 -
algorithm
- 与给定密钥材料关联的密钥算法的名称。 有关标准算法名称的信息,请参见Java Security Standard Algorithm Names文档。 - 异常
-
IllegalArgumentException
- 如果algorithm
为空或key
为空,空或太短,即key.length-offset<len
。 -
ArrayIndexOutOfBoundsException
- 如果offset
或len
之外的key
索引字节,则抛出此key
。
-
-
方法详细信息
-
getAlgorithm
public String getAlgorithm()
返回与此密钥关联的算法的名称。- Specified by:
-
getAlgorithm
接口Key
- 结果
- 密钥算法。
-
getEncoded
public byte[] getEncoded()
返回此密钥的密钥材料。- Specified by:
-
getEncoded
在界面Key
- 结果
- 关键材料。 每次调用此方法时返回一个新数组。
-
hashCode
public int hashCode()
计算对象的哈希码值。 相等的对象也将具有相同的哈希码。- 重写:
-
hashCode
在类Object
- 结果
- 此对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
equals
public boolean equals(Object obj)
测试指定对象与此对象之间的相等性。 如果两个SecretKeySpec对象都是具有相同的不区分大小写的算法名称和密钥编码的SecretKey实例,则它们被认为是相等的。- 重写:
-
equals
在类Object
- 参数
-
obj
- 要测试与此对象是否相等的对象。 - 结果
- 如果对象被视为相等,则
obj
true;如果obj
为null,则obj
false。 - 另请参见:
-
Object.hashCode()
,HashMap
-
-