1.签名过程
KeyFactory keyFactory = KeyFactory.getInstance(VIVO_SIGN_TYPE.RSA); byte[] encodedKey = Base64.getDecoder().decode(privateKey); PrivateKey priKey = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(encodedKey)); Signature signature = Signature.getInstance(VIVO_SIGN_TYPE.SHA256WithRSA); signature.initSign(priKey); signature.update(content.getBytes(Encoding.UTF_8)); byte[] signed = signature.sign(); String sign = new String(Base64.getEncoder().encodeToString(signed));
2.验签过程
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
byte[] encodedKey = Base64.getDecoder().decode(publicKey);
PublicKey pubKey = keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey));
java.security.Signature signature = java.security.Signature
.getInstance("SHA256WithRSA");
signature.initVerify(pubKey);
signature.update(content.getBytes(charset));
boolean result = signature.verify(Base64.getDecoder().decode(sign.getBytes()));
