模块  java.base
软件包  javax.crypto.spec

Class SecretKeySpec

  • 实现的所有接口
    SerializableKeyKeySpecSecretKeyDestroyable

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

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

    此类仅对可以表示为字节数组且没有与之关联的关键参数的原始密钥有用,例如DES或Triple 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的第一个len字节构造来自给定字节数组的key ,从offset开始。

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

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

        参数
        key - 密钥的密钥材料。 将复制以offset开头的数组的第一个len字节,以防止后续修改。
        offset - 密钥材料开始的 key中的偏移量。
        len - 密钥材料的长度。
        algorithm - 与给定密钥材料关联的密钥算法的名称。 有关标准算法名称的信息,请参见Java Security Standard Algorithm Names文档。
        异常
        IllegalArgumentException - 如果 algorithm为空或 key为空,空或太短,即 key.length-offset<len
        ArrayIndexOutOfBoundsException - 如果 offsetlen之外的 key索引字节,则抛出此 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实例,则它们被认为是相等的。
        重写:
        equals在类 Object
        参数
        obj - 要测试与此对象是否相等的对象。
        结果
        如果对象被视为相等,则 obj true;如果 obj为null,则 obj false。
        另请参见:
        Object.hashCode()HashMap