【问题标题】:Digital signature using X.509 certificate使用 X.509 证书的数字签名
【发布时间】:2014-09-30 11:42:18
【问题描述】:

我有一个包含在智能卡中的 SHA256withRSA X.509 证书。我需要用它在 Java 中签署文档,生成 P7M (CAdES) 信封。到目前为止,我已经找到了一些签署文件的例子,但问题是:

  • 大多数示例仅使用 PDF(例如 itext 库),但我需要 还签署其他文件,例如 .doc
  • 签名示例使用密钥库或私钥。但我只有 X.509 证书。我想关键体现在 X.509 证书

你有什么开始的建议吗?我很困惑,找不到起点。
谢谢!

【问题讨论】:

  • 您不能只拥有证书。您还必须有一个密钥对。否则,您没有私钥,也无法对任何内容进行数字签名。

标签: java ssl x509certificate digital-signature bouncycastle


【解决方案1】:

1.) 您可以使用文件的byte[] 对任何文件进行签名。这将是一个二进制签名。它适用于任何文件(.html、.txt、.pdf、.doc、..)。

与您提到的“PDF 签名”相比,这些签名称为PAdES 签名。某些应用程序(如 Adob​​e Acrobat)正在识别这些签名。如果您使用相应的应用程序打开此类 PDF,该应用程序将通知您该文档已签名。 但是,如果您使用二进制签名,应用程序就无法做到这一点 - 但至少您可以对所有内容进行签名。

2.) 你需要一个私钥才能签署某些东西。 [X.509][2} 证书仅包含公私密钥对的公共部分。私处必须保密。在您的情况下,密钥的私有部分存储在智能卡上。

阅读智能卡的手册以便使用它。 如果您不了解公钥/私钥的工作原理,请继续阅读something about PKI

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 2013-09-13
    • 1970-01-01
    相关资源
    最近更新 更多