模块 java.base

类 SecretKeySpec

java.lang.Object
javax.crypto.spec.SecretKeySpec
所有已实现的接口:
Serializable , Key , KeySpec , SecretKey , Destroyable

public class SecretKeySpec extends Object implements KeySpec , SecretKey
此类以与提供商无关的方式指定密钥。

它可用于从字节数组构造 SecretKey,而无需通过(基于提供者的)SecretKeyFactory

此类仅对可以表示为字节数组且没有与之关联的密钥参数的原始密钥有用,例如 DES 或三重 DES 密钥。

自从:
1.4
参见:
  • 构造方法详细信息

    • SecretKeySpec

      public SecretKeySpec(byte[] key, String  algorithm)
      从给定的字节数组构造一个密钥。

      此构造函数不检查给定字节是否确实指定了指定算法的密钥。例如,如果算法是 DES,则此构造函数不检查 key 是否为 8 字节长,也不检查弱密钥或半弱密钥。为了执行这些检查,特定于算法的关键规格应使用类(在本例中为:DESKeySpec )。

      参数:
      key - 密钥的密钥材料。复制数组的内容以防止后续修改。
      algorithm - 与给定密钥材料关联的密钥算法的名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称 文档。
      抛出:
      IllegalArgumentException - 如果 algorithm 为空或 key 为空或为空。
    • SecretKeySpec

      public SecretKeySpec(byte[] key, int offset, int len, String  algorithm)
      使用 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 - 如果 offsetlen 索引字节在 key 之外则抛出。
  • 方法详情

    • getAlgorithm

      public String  getAlgorithm()
      返回与此密钥关联的算法的名称。
      指定者:
      getAlgorithm 在接口 Key
      返回:
      秘钥算法。
    • getFormat

      public String  getFormat()
      返回此密钥的编码格式的名称。
      指定者:
      getFormat 在接口 Key
      返回:
      字符串“RAW”。
    • getEncoded

      public byte[] getEncoded()
      返回此密钥的密钥材料。
      指定者:
      getEncoded 在接口 Key
      返回:
      关键材料。每次调用此方法时返回一个新数组。
    • hashCode

      public int hashCode()
      计算对象的哈希码值。相等的对象也将具有相同的哈希码。
      重写:
      hashCode 在类 Object
      返回:
      此对象的哈希码值。
      参见:
    • equals

      public boolean equals(Object  obj)
      测试指定对象和此对象之间的相等性。如果两个 SecretKeySpec 对象都是具有相同的不区分大小写的算法名称和密钥编码的 SecretKey 实例,则它们被认为是相等的。
      重写:
      equals 在类 Object
      参数:
      obj - 要测试与此对象是否相等的对象。
      返回:
      如果对象被认为是相等的,则为 true;如果 obj 为 null 或其他,则为 false。
      参见: