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

发布于 2024-12-23 08:44:51 字数 145 浏览 2 评论 0原文

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

I must write a Java implementation of an X.509 openssl certificate parser, but I have a problem: I do not know how to get the sha1 for the validation of certificates.
Can anyone help me to understand what I should do? I know that there is a method getTBSCertificate() in Java, but I have to rewrite it for my purpose.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

很酷又爱笑 2024-12-30 08:44:51

假设您指的是 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 的输出匹配。

深度。

Assuming you mean the sha1 which is commonly shown as the 'fingerprint' in the browsers and OS tools -- you need 1) the raw cert as DER; and then 2) sha1 it and 3) translate that to the usual double-digit-hex/colon separated string.

As to 1; getEncoded() from java.security.cert.Certificate gets you that.

As to 2: MessageDigest has that function.

As to 3: I'll leave that to you :)

... 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();
  }

should do the trick. This output matches that of the java keytool.

Dw.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文