模块 java.base

接口 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、Raw 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:Internet X.509 公钥基础结构证书和 CRL 配置文件
  • 格式

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

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

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

自从:
1.1
参见:
  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    static final long
    已弃用。
    接口中的 serialVersionUID 字段无效。
  • 方法总结

    修饰符和类型
    方法
    描述
    返回此密钥的标准算法名称。
    byte[]
    以其主要编码格式返回密钥,如果此密钥不支持编码,则返回 null
    返回此密钥的主要编码格式的名称,如果此密钥不支持编码,则返回 null
  • 字段详细信息

    • serialVersionUID

      @Deprecated static final long serialVersionUID
      已弃用。
      接口中的 serialVersionUID 字段无效。不使用;没有替代品。
      设置为指示与该类的先前版本的序列化兼容性的类指纹。
      参见:
  • 方法详情

    • 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 如果密钥不支持编码。