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

How to get the message from the signature as a receiver

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

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));

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