如何使用java.security.Signature进行验证

时间:2012-02-09 22:35:53

标签: java rsa digital-signature

我已经有一对密钥对,公共密钥和私有密钥对。我如何实际使用java.security.Signature验证我用其中一个键签名的字符串?

编辑:

我有两个键作为字符串。验证方法,实际上是

verify(byte[] signature)

javadoc说:

  

verify(byte[] signature)表示给定的签名是否可以   使用公钥或签名者证明进行验证。

在调用verify方法之前,如何让该签名识别用于验证的公钥/私钥?换句话说,如何将我的字符串键转换为可被签名接受的关键对象?

1 个答案:

答案 0 :(得分:6)

  1. 使用KeyFactory将关键规格转换为对象。
  2. 致电Signature.getInstance(algName)以获取签名实例。
  3. 使用Signature的{​​{1}}方法关联密钥以进行签名验证。
  4. 使用initVerify提供update字节。
  5. 最后,请致电Signature
  6. 利润
  7. 来自KeyFactory javadoc:

      

    以下是如何使用密钥工厂从其编码中实例化DSA公钥的示例。假设Alice已收到Bob的数字签名。 Bob还向她发送了他的公钥(采用编码格式)来验证他的签名。 Alice然后执行以下操作:

    verify