public interface Key
implements Serializable
java.security.Key |
Known Indirect Subclasses |
密钥界面是所有密钥的顶层界面。 它定义了所有关键对象共享的功能。 所有密钥都有三个特征:
这是该密钥的关键算法。 关键算法通常是一种加密或非对称操作算法(如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 }For more information, see RFC 3280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile.
这是编码密钥格式的名称。 它由getFormat
方法返回。
KeyFactory
).
Key应该使用KeyRep作为其序列化表示。 请注意,序列化的密钥可能包含敏感信息,不应在不受信任的环境中公开。 有关更多信息,请参阅序列化规范的Security Appendix 。
Constants |
|
---|---|
long |
serialVersionUID 类别指纹设置为表示与该类的以前版本的序列化兼容性。 |
Public methods |
|
---|---|
abstract String |
getAlgorithm() 返回此密钥的标准算法名称。 |
abstract byte[] |
getEncoded() 以主编码格式返回键,如果此键不支持编码,则返回null。 |
abstract String |
getFormat() 返回此密钥的主要编码格式的名称,如果此密钥不支持编码,则返回null。 |
long serialVersionUID
类别指纹设置为表示与该类的以前版本的序列化兼容性。
常量值:6603384152749567654(0x5ba3eee69414eea6)
String getAlgorithm ()
返回此密钥的标准算法名称。 例如,“DSA”将指示该密钥是DSA密钥。 有关标准算法名称的信息,请参阅Java Cryptography Architecture API Specification & Reference中的附录A.
Returns | |
---|---|
String |
the name of the algorithm associated with this key. |
byte[] getEncoded ()
以主编码格式返回键,如果此键不支持编码,则返回null。
Returns | |
---|---|
byte[] |
the encoded key, or null if the key does not support encoding. |
String getFormat ()
返回此密钥的主要编码格式的名称,如果此密钥不支持编码,则返回null。 如果存在此密钥的ASN.1规范,则主要编码格式将根据相应的ASN.1数据格式命名。 例如,公共密钥的ASN.1数据格式的名称是SubjectPublicKeyInfo ,由X.509标准定义; 在这种情况下,返回的格式是"X.509"
。 同样,私钥的ASN.1数据格式的名称是PrivateKeyInfo ,由PKCS#8标准定义; 在这种情况下,返回的格式是"PKCS#8"
。
Returns | |
---|---|
String |
the primary encoding format of the key. |