证书颁发者的唯一标识符(X509Name)

Jai*_*zel 5 java cryptography bouncycastle asn.1 bc

在我的应用程序中,我使用发行者名称的sha256(x509CertImpl.getIssuerDN().getName())和证书序列号来唯一标识证书,但现在我已经意识到X509Name的其他实现作为Bouncy的实现当我调用bcX509Name.getName()时,Castle库显示不同的东西,所以这个标识符对我不起作用...我的问题是如何获得X509Name的唯一标识符...可能是ASN.1或DER编码表示两者都是一样的.

eri*_*son 3

从问题中尚不清楚您是否正在使用java.security.cert.X509Certificate或某些不使用 JCA 接口的 Bouncy Castle 类。

无论如何,应该有一个方法返回代表颁发者 X.500 名称的对象。该对象应该有一个方法,以字节数组的形式返回名称的 ASN.1 编码。使用它作为密钥的组成部分。

如果您使用标准X509Certificate或 Bouncy Castle 的X509CertificateObject,请使用类似的内容(如果您不使用这些类之一,请更具体):

X509Certificate x = ...;
byte[] issuer = x.getIssuerX500Principal().getEncoded();
Run Code Online (Sandbox Code Playgroud)