java.lang.Object
javax.crypto.spec.SecretKeySpec
- 所有已实现的接口:
Serializable,Key,KeySpec,SecretKey,Destroyable
此类以与提供商无关的方式指定密钥。
它可用于从字节数组构造 SecretKey,而无需通过(基于提供者的)SecretKeyFactory。
此类仅对可以表示为字节数组且没有与之关联的密钥参数的原始密钥有用,例如 DES 或三重 DES 密钥。
- 自从:
- 1.4
- 参见:
-
构造方法总结
构造方法构造方法描述SecretKeySpec(byte[] key, int offset, int len, String algorithm) 使用key的前len个字节从给定的字节数组构造一个密钥,从offset开始。SecretKeySpec(byte[] key, String algorithm) 从给定的字节数组构造一个密钥。 -
方法总结
修饰符和类型方法描述boolean测试指定对象和此对象之间的相等性。返回与此密钥关联的算法的名称。byte[]返回此密钥的密钥材料。返回此密钥的编码格式的名称。inthashCode()计算对象的哈希码值。在接口 javax.security.auth.Destroyable 中声明的方法
destroy, isDestroyed
-
构造方法详细信息
-
SecretKeySpec
从给定的字节数组构造一个密钥。此构造函数不检查给定字节是否确实指定了指定算法的密钥。例如,如果算法是 DES,则此构造函数不检查
key是否为 8 字节长,也不检查弱密钥或半弱密钥。为了执行这些检查,特定于算法的关键规格应使用类(在本例中为:DESKeySpec)。- 参数:
key- 密钥的密钥材料。复制数组的内容以防止后续修改。algorithm- 与给定密钥材料关联的密钥算法的名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称 文档。- 抛出:
IllegalArgumentException- 如果algorithm为空或key为空或为空。
-
SecretKeySpec
使用key的前len个字节从给定的字节数组构造一个密钥,从offset开始。构成密钥的字节是
key[offset]和key[offset+len-1]之间的字节(含)。此构造函数不检查给定字节是否确实指定了指定算法的密钥。例如,如果算法是 DES,则此构造函数不检查
key是否为 8 字节长,也不检查弱密钥或半弱密钥。为了执行这些检查,必须使用特定于算法的密钥规范类(在本例中为:DESKeySpec)。- 参数:
key- 密钥的密钥材料。复制从offset开始的数组的前len个字节,以防止后续修改。offset-key中密钥材料开始的偏移量。len- 密钥材料的长度。algorithm- 与给定密钥材料关联的密钥算法的名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称 文档。- 抛出:
IllegalArgumentException- 如果algorithm为空或key为空、空或太短,即key.length-offset<len。ArrayIndexOutOfBoundsException- 如果offset或len索引字节在key之外则抛出。
-
-
方法详情
-
getAlgorithm
返回与此密钥关联的算法的名称。- 指定者:
getAlgorithm在接口Key中- 返回:
- 秘钥算法。
-
getFormat
返回此密钥的编码格式的名称。 -
getEncoded
public byte[] getEncoded()返回此密钥的密钥材料。- 指定者:
getEncoded在接口Key中- 返回:
- 关键材料。每次调用此方法时返回一个新数组。
-
hashCode
public int hashCode()计算对象的哈希码值。相等的对象也将具有相同的哈希码。 -
equals
测试指定对象和此对象之间的相等性。如果两个 SecretKeySpec 对象都是具有相同的不区分大小写的算法名称和密钥编码的 SecretKey 实例,则它们被认为是相等的。
-