【问题标题】:Digital signature of document java文档java的数字签名
【发布时间】:2013-09-07 15:34:32
【问题描述】:

我一直在 web 和 java 教程中搜索此内容。但我没有说明如何为文档生成数字签名。这在 java 教程中有解释,但我真正想要的是

  1. 用户带有一个文件和一个密钥,它是一个字符串
  2. 使用该密钥对文件进行数字签名。
  3. 相应的公钥,并且签名与该文档一起发布。

那么,如何转换给定的 String 私钥来做到这一点。在尝试 java 教程和 web 中给出的示例时(有一些从字符串而不是文件中放置字节的变体),我遇到了类似的异常

Caught: java.security.spec.InvalidKeySpecException: Inappropriate key specification: IOException : Detect premature EOF

【问题讨论】:

  • 你心中的String是什么样的?选择一个自定义的,以便人类可以轻松记住它?或者只是一个String 来传输数据?后者可以通过例如完成bas64 编码一个实际的私钥。
  • 人性化字符串
  • 在这种情况下,恐怕你不走运了。至少如果您想要一个可互操作的解决方案。

标签: java security digital-signature


【解决方案1】:

您找不到示例,因为该字符串不是相应密钥对的私钥(但我可以想象 一些 非对称密钥可能看起来像一个文本字符串)。

生成密钥对。如果您同时控制签名者和验证者,理论上可以使用字符串作为随机化器的种子生成密钥对,从而在签名者和验证者端都获得可重复的随机化结果,但这种方法的安全性值得怀疑。

我必须承认,您使用文本字符串签名的想法很吸引人,但遗憾的是通常不可能。

【讨论】:

    猜你喜欢
    • 2019-04-03
    • 1970-01-01
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多