Module java.base

Class SecretKeySpec

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

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

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

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

自从:
1.4
参见:
  • Constructor Summary

    Constructors
    Constructor
    Description
    SecretKeySpec(byte[] key, int offset, int len, String algorithm)
    使用给定字节数组构造秘密密钥,使用key中的前len字节,从offset开始包括。
    SecretKeySpec(byte[] key, String algorithm)
    使用给定字节数组构造秘密密钥。
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    equals(Object obj)
    测试指定对象和此对象之间的相等性。
    返回与此秘密密钥关联的算法的名称。
    byte[]
    返回此秘密密钥的密钥材料。
    返回此秘密密钥的编码格式的名称。
    int
    为对象计算哈希码值。相等的对象也将具有相同的哈希码。

    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

      public SecretKeySpec(byte[] key, String algorithm)
      使用给定字节数组构造秘密密钥。

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

      参数:
      key - 秘密密钥的密钥材料。数组的内容会被复制以防止后续修改。
      algorithm - 要与给定密钥材料关联的秘密密钥算法的名称。有关标准算法名称的信息,请参阅Java安全标准算法名称文档。
      抛出:
      IllegalArgumentException - 如果algorithm为null或key为null或为空。
    • 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 - 密钥材料开始的偏移量。
      len - 密钥材料的长度。
      algorithm - 要与给定密钥材料关联的秘密密钥算法的名称。有关标准算法名称的信息,请参阅Java安全标准算法名称文档。
      抛出:
      IllegalArgumentException - 如果algorithm为null或key为null、空或太短,即key.length-offset<len
      ArrayIndexOutOfBoundsException - 如果offsetlen索引字节超出key
  • Method Details

    • 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。
      参见: