话不多说,直接封装一下,
package com.itafei.jwt;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
public class PasswordRsaUtils {
//获取密钥方法
public static Map<String,String> getPairKey(){
Map<String,String> map=new HashMap<>();
RSA rsa = new RSA();
map.put("public",rsa.getPublicKeyBase64());
map.put("private",rsa.getPrivateKeyBase64());
return map;
}
//解密方法--ciphertext:为密文,privateKey:为私钥
public static String keyDecrypt(String ciphertext,String privateKey){
RSA rsa = new RSA(privateKey, null);
byte[] decode = Base64.getDecoder().decode(ciphertext);
byte[] passwordBytes = rsa.decrypt(decode, KeyType.PrivateKey);
return StrUtil.str(passwordBytes, CharsetUtil.CHARSET_UTF_8);
}
//加密方法--text:为需要加密的字符串,publicKey:为公钥
public static String encryption(String text,String publicKey) throws UnsupportedEncodingException {
RSA rsa = new RSA(null, publicKey);
byte[] encrypt = rsa.encrypt(StrUtil.bytes(text, CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey);
String encode = Base64.getEncoder().encodeToString(encrypt);
return encode;
}
}
然后直接调用就可以了