6
将SHA1和RSA与java.security.Signature和MessageDigest和Cipher结合使用
我试图了解Java java.security.Signature类的作用。如果我计算一个SHA1消息摘要,然后使用RSA对该摘要进行加密,则得到的结果与要求Signature类对同一事物进行签名的结果不同: // Generate new key KeyPair keyPair = KeyPairGenerator.getInstance("RSA").generateKeyPair(); PrivateKey privateKey = keyPair.getPrivate(); String plaintext = "This is the message being signed"; // Compute signature Signature instance = Signature.getInstance("SHA1withRSA"); instance.initSign(privateKey); instance.update((plaintext).getBytes()); byte[] signature = instance.sign(); // Compute digest MessageDigest sha1 = MessageDigest.getInstance("SHA1"); byte[] digest = sha1.digest((plaintext).getBytes()); // Encrypt digest …