代码之家  ›  专栏  ›  技术社区  ›  wadesworld

调试签名验证失败

  •  0
  • wadesworld  · 技术社区  · 15 年前

    使用Java1.4.2安装了无限权限的策略文件。

    我有一个已经成功签名和验证的类。但是,现在我换了钥匙,突然验证失败了。

    生成密钥时使用:

    openssl genrsa -aes256 -out production_private.pem 2048
    openssl pkcs8 -topk8 -nocrypt -in production_private.pem -outform der -out production_private.der
    openssl rsa -in production_private.pem -pubout -outform DER -out production_public.der
    

    我使用PEM密钥和OpenSSL进行了验证,使用的是:

    openssl dgst -sha1 -sign production_private.pem -out test.txt.sha1 test.txt
    Enter pass phrase for production_private.pem:
    openssl dgst -sha1 -verify production_public.pem -signature test.txt.sha1 test.txt
    Verified OK
    

    但似乎您不能使用der键来实现这一点。

    不会引发错误。signature.verify只返回false。因为它只适用于一组键而不适用于另一组键,所以我的假设是它一定是某种类型的关键问题。

    关于如何验证密钥对是否正确还有其他想法吗?我不想为了找出问题的根源而去寻找编码错误而自杀。

    我很乐意根据要求分享消息来源——我只是不想在必要的时候把问题搞得一团糟。

    2 回复  |  直到 15 年前
        1
  •  0
  •   ZZ Coder    15 年前

    默认密钥格式为PEM。您需要添加这个参数来使用der,

      -keyform DER
    
        2
  •  0
  •   wadesworld    15 年前

    结果完全没有关系。数据库过程正在损坏键值。