【问题标题】:Digital Signature Verification for more than 256 length超过 256 长度的数字签名验证
【发布时间】:2019-05-25 12:32:50
【问题描述】:

我正在使用 RSA 算法来验证数字签名,其中长度为 256。 但是我必须验证具有可变签名长度的数据包,例如(344,328)。如果我将使用 RSA,则会出现以下错误。

线程“main”java.security.SignatureException 中的异常:签名长度不正确:得到 328 但预期为 256..

那么我使用哪个算法来验证可变长度的签名?

【问题讨论】:

  • 签名是如何创建的?不要把要签名的数据放在RSA签名里,那是不安全的!仅对哈希进行签名(为此使用通用的 RSA 签名标准)。请注意,对于 RSA2048 位密钥,最大数据大小为 256 字节,这是一个数学事实,任何人都无法更改!
  • 实际上我正在从事银行项目,其中我没有关于它们是如何创建的信息,但我收到了包装(来自长度为 344,328 的银行),必须从我身边验证......是否可以验证超过 256 长度的签名
  • 那您不使用Java提供的方法来验证RSA签名吗?无论如何,如果您想验证签名生成,您必须知道使用哪种标准。

标签: java


【解决方案1】:

是的,签名长度将固定为 256,但在签名长度为 344 的情况下,他们使用 Base64 对生成的签名进行了加密。首先我要解密签名字节然后验证。

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 2018-09-18
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2019-02-19
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多