java.lang.Object javax.crypto.spec.SecretKeySpec
此类以与 provider 无关的方式指定一个密钥。
可以使用此类来根据一个字节数组构造一个 SecretKey
,而无须通过一个(基于 provider 的)SecretKeyFactory
。
此类仅对能表示为一个字节数组并且没有任何与之相关联的钥参数的原始密钥有用,如,DES 或者 Triple DES 密钥。
SecretKey
,
SecretKeyFactory
,
序列化表格
字段摘要 |
---|
从接口 javax.crypto.SecretKey 继承的字段 |
---|
serialVersionUID |
构造方法摘要 | |
---|---|
SecretKeySpec(byte[] key, int offset, int len, String algorithm) 根据给定的字节数组构造一个密钥,使用 key 中的始于且包含 offset 的前 len 个字节。 |
|
SecretKeySpec(byte[] key, String algorithm) 根据给定的字节数组构造一个密钥。 |
方法摘要 | |
---|---|
boolean |
equals(Object obj) 测试给定对象与此对象的相等性。 |
String |
getAlgorithm() 返回与此密钥关联的算法的名称。 |
byte[] |
getEncoded() 返回此密钥的密钥内容。 |
String |
getFormat() 返回此密钥编码格式的名称。 |
int |
hashCode() 计算此对象的哈希码值。 |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public SecretKeySpec(byte[] key, String algorithm)
此构造方法不检查给定的字节实际上是否指定了一个指定算法的密钥。例如,如果算法是 DES,此构造方法不检查 key
是否是 8 字节长,并且也不检查是否是全弱或者半弱密钥。为了执行这些检查,应当使用一个特定于算法的密钥规范(在此情况下是:DESKeySpec
)。
key
- 密钥的密钥内容。复制该数组的内容来防止后续修改。
algorithm
- 与给定的密钥内容相关联的密钥算法的名称。有关标准算法名称的信息请参见
Java Cryptography Architecture Reference Guide 中的附录 A。
IllegalArgumentException
- 如果
algorithm
为 null 或者
key
为 null 或空。
public SecretKeySpec(byte[] key, int offset, int len, String algorithm)
key
中的始于且包含
offset
的前
len
个字节。
组成密钥的字节在 key[offset]
和 key[offset+len-1]
范围内(包含两者)。
此构造方法不检查给定的字节实际上是否指定了一个指定算法的密钥。例如,如果算法是 DES,此构造方法不检查 key
是否是 8 字节长,并且也不检查是否是全弱或者半弱密钥。为了执行这些检查,必须使用一个特定于算法的密钥规范(在此情况下是:DESKeySpec
)。
key
- 密钥的密钥内容。复制该数组始于且包含
offset
的前
len
个字节来防止后续修改。
offset
-
key
中的偏移量,密钥内容从此处开始。
len
- 密钥内容的长度。
algorithm
- 与给定的密钥内容相关联的密钥算法的名称。有关标准算法名称的信息请参见
Java Cryptography Architecture Reference Guide 中的附录 A。
IllegalArgumentException
- 如果
algorithm
为 null 或者
key
为 null、空或太短(即
key.length-offset 小于 len
)。
ArrayIndexOutOfBoundsException
- 如果
offset
或者
len
索引字节在
key
范围外,则抛出该异常。
方法详细信息 |
---|
public String getAlgorithm()
Key
中的
getAlgorithm
public String getFormat()
public byte[] getEncoded()
Key
中的
getEncoded
public int hashCode()
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
obj
- 要与此对象进行相等性测试的对象。
obj
为 null 或其他情况则返回 false。
Object.hashCode()
,
Hashtable