【问题标题】:Access certificate signature from a certificate从证书访问证书签名
【发布时间】:2015-03-21 08:53:48
【问题描述】:

我正在做一个需要数字签名才能继续进行的项目。我尝试了所有内置方法,遗憾的是,没有任何效果!

这是我要提取的内容:

算法:[SHA512withRSA] 签名: 0000: 60 3B FA 8C 49 CF 97 E3 8B 04 F6 FD 75 23 5D 96 `;..I.......u#]。 0010: E0 17 C4 10 03 FC 90 B9 9B 4C 00 43 C0 5A F5 08 .........L.C.Z.. 0020: 93 0A 38 FA 13 42 39 B7 CE 27 DE 47 01 FB 0F EB ..8..B9..'.G.... 0030: 28 FB 59 FA FD 04 70 A6 A5 E1 4D 59 5D 03 3C 2E (.Y...p...MY].<. c6 ...w. d3 a9 aa f4 fa ......iw...... ef .. a1 ec a8 d8 f5 .....r..b..omf..>

请帮帮我...

【问题讨论】:

  • 了解您需要签名的目的可能会有所帮助。对于 X.509 签名,getSignature() 方法应该可以工作。

标签: java x509certificate pki


【解决方案1】:

我知道你说内置方法不起作用,但这不是很有用。他们怎么不工作?你的代码是什么样的?

您应该能够使用 CertificateFactory 加载证书,然后将其转换为 X.509 证书。从那里,getSignature() 方法返回一个包含签名的字节数组,getSigAlgName() 返回用于计算签名的算法。所有这些都在 Java API 文档中有很好的记录:http://docs.oracle.com/javase/7/docs/api/java/security/cert/X509Certificate.html

【讨论】:

  • 您能解释一下如何验证证书的真实性吗?比如从颁发者那里获取公钥,然后解码客户端证书!!。
  • 看一下Certificate类:docs.oracle.com/javase/7/docs/api/java/security/cert/…,里面有verify方法。
  • 在哪里可以找到 verify() 方法的实际方法定义?
  • 在哪里可以找到 verify() 方法的实际方法定义?我需要知道该方法实际上是如何工作的。 !! verify() 方法是否足以检查证书是否真实?我需要检查证书链。
  • 其实就是verify的点,它沿着认证链,验证签名。如果它说证书是有效的,你可以合理地保证它是有效的,至少在计算上可以验证。
猜你喜欢
  • 1970-01-01
  • 2019-12-11
  • 2018-11-16
  • 2020-09-20
  • 2021-02-20
  • 1970-01-01
  • 1970-01-01
  • 2013-04-01
  • 1970-01-01
相关资源
最近更新 更多