- 所有超级接口:
-
Serializable
- 所有已知子接口:
-
DHPrivateKey
,DHPublicKey
,DSAPrivateKey
,DSAPublicKey
,ECPrivateKey
,ECPublicKey
,EdECPrivateKey
,EdECPublicKey
,PBEKey
,PrivateKey
,PublicKey
,RSAMultiPrimePrivateCrtKey
,RSAPrivateCrtKey
,RSAPrivateKey
,RSAPublicKey
,SecretKey
,XECPrivateKey
,XECPublicKey
- 所有已知实现类:
-
EncryptionKey
,KerberosKey
,SecretKeySpec
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
-
Method Summary
Modifier and TypeMethodDescription返回此密钥的标准算法名称。byte[]
返回密钥的主要编码格式,如果此密钥不支持编码,则返回null
。返回此密钥的主要编码格式的名称,如果此密钥不支持编码,则返回null
。
-
Field Details
-
serialVersionUID
Deprecated.AserialVersionUID
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
。
-
serialVersionUID
字段是无效的。