Module  java.base
软件包  javax.crypto.spec

Class SecretKeySpec

  • All Implemented Interfaces:
    SerializableKeyKeySpecSecretKeyDestroyable


    public class SecretKeySpec
    extends Object
    implements KeySpec, SecretKey
    该类以独立于提供商的方式指定密钥。

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

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

    从以下版本开始:
    1.4
    另请参见:
    SecretKeySecretKeyFactorySerialized Form
    • 构造方法详细信息

      • 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的字节key ,起始于offset以下。

        构成秘密密钥的字节是key[offset]key[offset+len-1]之间的字节。

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

        参数
        key - 密钥的关键材料。 offset包括)开始的阵列的第一个len字节被复制以防止后续修改。
        offset - key中的关键材料启动时的偏移量。
        len - 关键材料的长度。
        algorithm - 与给定密钥材料相关联的秘密密钥算法的名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names文档。
        异常
        IllegalArgumentException - 如果 algorithm为null或 key为空,空或太短,即 key.length-offset<len
        ArrayIndexOutOfBoundsException - 抛出 offsetlen索引字节外的 key
    • 方法详细信息

      • getAlgorithm

        public String getAlgorithm​()
        返回与该密钥相关联的算法的名称。
        Specified by:
        getAlgorithm在接口 Key
        结果
        秘密密钥算法。
      • getFormat

        public String getFormat​()
        返回此密钥的编码格式的名称。
        Specified by:
        getFormat在接口 Key
        结果
        字符串“RAW”。
      • getEncoded

        public byte[] getEncoded​()
        返回此密钥的密钥材料。
        Specified by:
        getEncoded接口 Key
        结果
        关键材料。 每次调用此方法时都会返回一个新数组。
      • equals

        public boolean equals​(Object obj)
        测试指定对象和此对象之间的相等性。 如果两个SecretKeySpec对象都是具有相同的不区分大小写的算法名称和密钥编码的SecretKey实例,则它们被认为是相等的。
        重写:
        equalsObject
        参数
        obj - 测试与此对象相等的对象。
        结果
        如果对象被视为相等, obj true,如果 obj为空, obj false。
        另请参见:
        Object.hashCode()HashMap