Files
spring-soap/libraries-security/src/main/java/com/baeldung/digitalsignature/level1/DigitalSignatureWithMessageDigestAndCipherVerifying.java
eelhazati 96e836ec94 BAEL-3282 -- Digital signature. (#7981)
* Digital signature.

* Digital signature.
move message.txt in src/test/resources/digitalsignature.
2019-11-13 08:54:17 +00:00

34 lines
1.1 KiB
Java

package com.baeldung.digitalsignature.level1;
import com.baeldung.digitalsignature.Utils;
import javax.crypto.Cipher;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.MessageDigest;
import java.security.PublicKey;
import java.util.Arrays;
public class DigitalSignatureWithMessageDigestAndCipherVerifying {
public static void main(String[] args) throws Exception {
PublicKey publicKey = Utils.getPublicKey();
byte[] messageBytes = Files.readAllBytes(Paths.get("src/test/resources/digitalsignature/message.txt"));
MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] newMessageHash = md.digest(messageBytes);
byte[] encryptedMessageHash = Files.readAllBytes(Paths.get("target/digital_signature_1"));
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, publicKey);
byte[] decryptedMessageHash = cipher.doFinal(encryptedMessageHash);
boolean isCorrect = Arrays.equals(decryptedMessageHash, newMessageHash);
System.out.println("Signature " + (isCorrect ? "correct" : "incorrect"));
}
}