如何从签名中获取消息作为接收者

时间:2016-04-20 09:46:22

标签: java digital-signature public-key-encryption private-key java-security

如果我使用服务器 - 客户端方法,则客户端使用数据(消息)更新签名。 并发送到服务器。服务器如何从此签名中获取消息?

final String message = "Hello world is a stupid message to be signed";

final KeyPair keyPair = KeyPairGenerator.getInstance("RSA").generateKeyPair();

final Signature privSig = Signature.getInstance("SHA1withRSA");

privSig.initSign(keyPair.getPrivate());

privSig.update(message.getBytes());

byte[] signature = privSig.sign();

final Signature pubSig = Signature.getInstance("SHA1withRSA");

pubSig.initVerify(keyPair.getPublic());
pubSig.update(message.getBytes());

System.out.println(pubSig.verify(signature));

1 个答案:

答案 0 :(得分:0)

签名包含错误或消化形式的消息。您无法从中提取消息。您需要将明文消息连同签名一起发送给接收方。否则,他们无法验证有效性。