Java X509Certificate:getIssuerDN()和getSubjectDN()方法之间的区别是什么

Java X509Certificate:getIssuerDN()和getSubjectDN()方法之间的区别是什么,java,security,authentication,x509,Java,Security,Authentication,X509,我使用的是java中的X509Certificate类,当我想获取主题名称时,我会尝试: x509certificate.getIssuerDN().getName(); 及 两种方法的结果相同。那么它们之间的区别是什么呢?此方法从证书中的两个不同字段读取。它可能会在您的案例中返回相同的结果,但并不相同 请参阅和。方法公共抽象主体getIssuerDN() 诋毁,替换为GetIssuerX500 Principal()。将颁发者作为特定于实现的主体对象返回,可移植代码不应依赖该对象。 从证书获

我使用的是java中的X509Certificate类,当我想获取主题名称时,我会尝试:

x509certificate.getIssuerDN().getName();


两种方法的结果相同。那么它们之间的区别是什么呢?

此方法从证书中的两个不同字段读取。它可能会在您的案例中返回相同的结果,但并不相同


请参阅和。

方法
公共抽象主体getIssuerDN()
诋毁,替换为
GetIssuerX500 Principal()
。将颁发者作为特定于实现的主体对象返回,可移植代码不应依赖该对象。 从证书获取颁发者(颁发者可分辨名称)值。颁发者名称标识签署(和颁发)证书的实体

发卡机构名称字段包含一个X.500可分辨名称(DN)

名称描述由属性(如国家名称)和相应值(如美国)组成的层次名称。AttributeValue组件的类型由AttributeType确定;通常,它将是一个directoryString。directoryString通常是可打印字符串、电传字符串或UniversalString中的一种

返回:名称为发行人可分辨名称的主体


方法
公共抽象主体getSubjectDN()
诋毁,替换为
GetSubjectX500 Principal()
。将主题作为特定于实现的主体对象返回,可移植代码不应依赖该主体对象。 从证书中获取使用者(使用者可分辨名称)值。如果subject值为空,则返回的主体对象的
getName()
方法返回一个空字符串(“”)

有关名称和其他相关定义,请参见

返回:名称为主题名称的主体

x509certificate.getSubjectDN().getName();