加解密及验签
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.0</version>
</dependency>
public class EncodeSign {
public static void main(String[] args) {
KeyPair rsa = SecureUtil.generateKeyPair("RSA");
PrivateKey privateKey = rsa.getPrivate();
PublicKey publicKey = rsa.getPublic();
String data = "{\"result\": \"SUCCESS\"}";
Sign signOne = SecureUtil.sign(SignAlgorithm.MD5withRSA);
signOne.setPrivateKey(privateKey);
byte[] signData = signOne.sign(data.getBytes(StandardCharsets.UTF_8));
String signDataStr = Base64.encode(signData);
System.out.println("signDataStr = " + signDataStr);
RSA rsaForDataEncode = new RSA();
rsaForDataEncode.setPrivateKey(privateKey);
byte[] encrypt = rsaForDataEncode.encrypt(data.getBytes(StandardCharsets.UTF_8), KeyType.PrivateKey);
String encodeData = Base64.encode(encrypt);
System.out.println(encodeData);
Sign signTwo = SecureUtil.sign(SignAlgorithm.MD5withRSA);
signTwo.setPublicKey(publicKey);
byte[] signDataOrigin = Base64.decode(signDataStr);
boolean verify = signTwo.verify(data.getBytes(StandardCharsets.UTF_8), signDataOrigin);
System.out.println(verify);
RSA rsaForDataDecode = new RSA();
rsaForDataDecode.setPublicKey(publicKey);
byte[] decodeData = Base64.decode(encodeData);
byte[] decrypt = rsaForDataDecode.decrypt(decodeData, KeyType.PublicKey);
String dataOrgin = new String(decrypt, StandardCharsets.UTF_8);
System.out.println("dataOrgin = " + dataOrgin);
}
}