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

Java 如何从作为接收者的签名中获取消息,java,digital-signature,public-key-encryption,private-key,java-security,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.getInstan

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

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

签名以破损或摘要的形式包含消息。您无法从中提取消息。您需要将普通消息连同签名一起发送给接收者。否则,他们无法验证有效性