有没有办法获取认证文件的指纹信息?例如,我有我的certRSA.cert,如果我用Windows 7打开它,我们可以看到证书的所有信息(算法,发行者,主题,有效性,公钥,密钥的使用,FINGERPRINT ......)。在java中,我将cert作为java对象(x509Certificate):
X509Certificate certRSA = X509Certificate.getInstance(CertRSA_data);
然后我们可以获得公钥:
PublicKey pubKeyUser = certRSA.getPublicKey();
ZZ Coder(How to retrieve/compute an X509 certificate's thumbprint in Java?)上面公开的代码非常好,但它计算指纹,我想要的是获取这些信息(与我们获取公钥信息,发行人或其他信息的方式相同)证书的项目,而不是计算。 有没有办法做到这一点? 任何评论都非常感谢。非常感谢。
答案 0 :(得分:5)
我想要的是获取证书的这些信息(与获取公钥信息或发行人或其他项目的方式相同),而不是计算。
您无法获取指纹的原因就像您可以获取公钥或发行者一样,指纹不是就像那些值一样,它不属于证书。公钥和发行人是其中的一部分,因此,只需要从证书中读取,但指纹不是其中的一部分,因此必须进行计算。
微软的证书介绍有点误导,因为它将指纹呈现为好像它包含在证书中,但实际上微软也必须计算指纹。这尤其具有误导性,因为证书实际上有很多指纹,而Microsoft只显示它似乎在内部使用的指纹,即SHA-1指纹。