我已经有一对密钥对,公共密钥和私有密钥对。我如何实际使用java.security.Signature
验证我用其中一个键签名的字符串?
编辑:
我有两个键作为字符串。验证方法,实际上是
verify(byte[] signature)
javadoc说:
verify(byte[] signature)
表示给定的签名是否可以 使用公钥或签名者证明进行验证。
在调用verify方法之前,如何让该签名识别用于验证的公钥/私钥?换句话说,如何将我的字符串键转换为可被签名接受的关键对象?
答案 0 :(得分:6)
KeyFactory
将关键规格转换为对象。Signature.getInstance(algName)
以获取签名实例。Signature
的{{1}}方法关联密钥以进行签名验证。initVerify
提供update
字节。Signature
。来自KeyFactory
javadoc:
以下是如何使用密钥工厂从其编码中实例化DSA公钥的示例。假设Alice已收到Bob的数字签名。 Bob还向她发送了他的公钥(采用编码格式)来验证他的签名。 Alice然后执行以下操作:
verify