gpt4 book ai didi

java - 在 Java 中从 X.509 openssl 证书中提取 sha1

转载 作者:行者123 更新时间:2023-11-29 08:09:55 25 4
gpt4 key购买 nike

我必须编写一个 X.509 openssl 证书解析器的 Java 实现,但我有一个问题:我不知道如何获取用于证书验证的 sha1。谁能帮助我理解我应该做什么?我知道 Java 中有一个方法 getTBSCertificate(),但我必须为我的目的重写它。

最佳答案

假设您指的是在浏览器和操作系统工具中通常显示为“指纹”的 sha1——您需要 1) 作为 DER 的原始证书;然后 2) sha1 和 3) 将其转换为通常的双位数十六进制/冒号分隔字符串。

至于1;来自 java.security.cert.Certificate 的 getEncoded() 为您提供。

关于2:MessageDigest有那个功能。

至于 3:我会把它留给你 :)

... someFoo(X509Certificate cert) {
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
System.out.println(" Subject " + cert.getSubjectDN());
System.out.println(" Issuer " + cert.getIssuerDN());
sha1.update(cert.getEncoded());
System.out.println(" sha1 " + toHexString(sha1.digest()));
System.out.println();
}

应该可以解决问题。此输出与 java keytool 的输出匹配。

数据。

关于java - 在 Java 中从 X.509 openssl 证书中提取 sha1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8687684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com