Module java.base
Package java.security

Interface Key

所有超级接口:
Serializable
所有已知子接口:
DHPrivateKey, DHPublicKey, DSAPrivateKey, DSAPublicKey, ECPrivateKey, ECPublicKey, EdECPrivateKey, EdECPublicKey, PBEKey, PrivateKey, PublicKey, RSAMultiPrimePrivateCrtKey, RSAPrivateCrtKey, RSAPrivateKey, RSAPublicKey, SecretKey, XECPrivateKey, XECPublicKey
所有已知实现类:
EncryptionKey, KerberosKey, SecretKeySpec

public interface Key extends Serializable
Key接口是所有密钥的顶级接口。它定义了所有Key对象共享的功能。所有密钥具有三个特征:
  • 算法

    这是该密钥的密钥算法。密钥算法通常是加密或非对称操作算法(如DSA或RSA),它将与这些算法以及相关算法一起工作(如MD5与RSA,SHA-1与RSA,原始DSA等)。密钥的算法名称是使用getAlgorithm方法获取的。

  • 编码形式

    这是密钥的外部编码形式,当需要密钥的标准表示在Java虚拟机之外时使用,例如在将密钥传输给其他方时。密钥根据标准格式编码(如X.509 SubjectPublicKeyInfo或PKCS#8),并使用getEncoded方法返回。注意: ASN.1类型SubjectPublicKeyInfo的语法定义如下:

     SubjectPublicKeyInfo ::= SEQUENCE {
       algorithm AlgorithmIdentifier,
       subjectPublicKey BIT STRING }
    
     AlgorithmIdentifier ::= SEQUENCE {
       algorithm OBJECT IDENTIFIER,
       parameters ANY DEFINED BY algorithm OPTIONAL }
     
    更多信息,请参见RFC 5280: 互联网X.509公钥基础设施证书和CRL配置文件
  • 格式

    这是编码密钥的格式的名称。它由getFormat方法返回。

通常通过密钥生成器、证书、密钥库或其他用于管理密钥的类获取密钥。还可以通过使用密钥工厂(参见KeyFactory)从密钥规范(底层密钥材料的透明表示)获取密钥。

密钥应该使用KeyRep作为其序列化表示。请注意,序列化的密钥可能包含不应在不受信任的环境中公开的敏感信息。有关更多信息,请参见Java对象序列化规范安全附录

自版本:
1.1
参见:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final long
    已弃用。
    接口中的serialVersionUID字段是无效的。
  • Method Summary

    Modifier and Type
    Method
    Description
    返回此密钥的标准算法名称。
    byte[]
    返回密钥的主要编码格式,如果此密钥不支持编码,则返回null
    返回此密钥的主要编码格式的名称,如果此密钥不支持编码,则返回null
  • Field Details

    • serialVersionUID

      @Deprecated static final long serialVersionUID
      Deprecated.
      A serialVersionUID field in an interface is ineffectual. Do not use; no replacement.
      设置类指纹,以指示与类的先前版本的序列化兼容性。
      参见:
  • Method Details

    • getAlgorithm

      String getAlgorithm()
      返回此密钥的标准算法名称。例如,"DSA"表示此密钥是DSA密钥。有关标准密钥算法名称的信息,请参阅Java安全标准算法名称规范中的与密钥相关的部分(KeyFactory、KeyGenerator、KeyPairGenerator和SecretKeyFactory)。
      返回:
      与此密钥关联的算法的名称。
    • getFormat

      String getFormat()
      返回此密钥的主要编码格式的名称,如果此密钥不支持编码,则返回null。主要编码格式以适当的ASN.1数据格式命名,如果存在此密钥的ASN.1规范。例如,公钥的ASN.1数据格式的名称是SubjectPublicKeyInfo,由X.509标准定义;在这种情况下,返回的格式是"X.509"。类似地,私钥的ASN.1数据格式的名称是PrivateKeyInfo,由PKCS #8标准定义;在这种情况下,返回的格式是"PKCS#8"
      返回:
      密钥的主要编码格式。
    • getEncoded

      byte[] getEncoded()
      返回密钥的主要编码格式,如果此密钥不支持编码,则返回null
      返回:
      编码的密钥,如果密钥不支持编码,则返回null