|
|
|
@ -2,6 +2,7 @@ package cn.chjyj.szwh.utils; |
|
|
|
|
|
|
|
import io.jsonwebtoken.Jwts; |
|
|
|
import io.jsonwebtoken.SignatureAlgorithm; |
|
|
|
import org.apache.commons.codec.binary.Base64; |
|
|
|
|
|
|
|
import java.security.Key; |
|
|
|
import java.security.KeyFactory; |
|
|
|
@ -78,12 +79,44 @@ public class ApiTokenUtils { |
|
|
|
.compact(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 抽取公钥 |
|
|
|
* @param publicKey |
|
|
|
* @return |
|
|
|
* @throws NoSuchAlgorithmException |
|
|
|
* @throws InvalidKeySpecException |
|
|
|
*/ |
|
|
|
public static RSAPublicKey getPublicKey(String publicKey) throws NoSuchAlgorithmException, InvalidKeySpecException { |
|
|
|
return (RSAPublicKey) KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(org.apache.commons.codec.binary.Base64.decodeBase64(publicKey.getBytes()))); |
|
|
|
String publicKeyPEM = publicKey.replace("-----BEGIN PUBLIC KEY-----\r\n", ""); |
|
|
|
publicKeyPEM = publicKeyPEM.replace("-----END PUBLIC KEY-----", ""); |
|
|
|
|
|
|
|
Base64 b64 = new Base64(); |
|
|
|
byte [] decoded = b64.decode(publicKeyPEM); |
|
|
|
|
|
|
|
X509EncodedKeySpec spec = |
|
|
|
new X509EncodedKeySpec(decoded); |
|
|
|
KeyFactory kf = KeyFactory.getInstance("RSA"); |
|
|
|
return (RSAPublicKey) kf.generatePublic(spec); |
|
|
|
//return (RSAPublicKey) KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(org.apache.commons.codec.binary.Base64.decodeBase64(publicKey.getBytes())));
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 抽取私钥 |
|
|
|
* @param privateKey |
|
|
|
* @return |
|
|
|
* @throws Exception |
|
|
|
*/ |
|
|
|
public static RSAPrivateKey getPrivateKey(String privateKey) throws Exception { |
|
|
|
return (RSAPrivateKey) KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(org.apache.commons.codec.binary.Base64.decodeBase64(privateKey.getBytes()))); |
|
|
|
String privKeyPEM = privateKey.replace("-----BEGIN PRIVATE KEY-----\r\n", ""); |
|
|
|
privKeyPEM = privKeyPEM.replace("-----END PRIVATE KEY-----", ""); |
|
|
|
Base64 b64 = new Base64(); |
|
|
|
byte [] decoded = b64.decode(privKeyPEM); |
|
|
|
|
|
|
|
PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(decoded); |
|
|
|
KeyFactory kf = KeyFactory.getInstance("RSA"); |
|
|
|
return (RSAPrivateKey)kf.generatePrivate(spec); |
|
|
|
|
|
|
|
//return (RSAPrivateKey) KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(org.apache.commons.codec.binary.Base64.decodeBase64(privateKey.getBytes())));
|
|
|
|
} |
|
|
|
|
|
|
|
public static Key stringToPublickKey(String key) throws NoSuchAlgorithmException, InvalidKeySpecException { |
|
|
|
|