package com.dzcm.utils;
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 org.apache.commons.codec.binary.Base64;
import java.security.PublicKey;
/**
* @author: LiuHangJing
* @Date: 2023/4/20 17:05
* @Description: RSA非对称加密
*/
public class RSAUtil {
public static String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAOxBx5X1nf08uRsmvIOe05sXqEf900nRCPx1V8N7qM4nP+gDCgqvkttuldoSQSzLRqKQLRs4EQXyJDNQjwu2U9somdKS68yyx0LTXMxvlkH0Z7k7VLvQp+OMUDA9CRUBp3yvylAQNbwDSJoldL9ZS5nN4L8bp+BcI8L9lBkN+dixAgMBAAECgYBA74+I8xp6iR8jjFESKCxnG2iAaQ6S4maC5Um7DBkImJcjEPrIlxtZPprndk79nd2LPu925MEhDj3O8NxwTqvbMKSqil5mIHWfR6dwPUQznA7lRpw1U+PFGN3/iwQzzoOfbQklD9giHt4cjiMg+USCnQsMXxyLckULrJlwsf3YAQJBAPruGcYD0KZiFbB8uuhRHVJuC2heRPmGzUyAXCfTgQ2SpzTetw0V7O/E0stGdD2+/bf3P/5Joca1HrTfXmxS/oECQQDxB8jJ0rPEtrMmrIJN8m5nPoufd0hEML+pNNO2j68sYhAChc9uEQPGLyebOCBhfl77A3+fw5iiIXUXVP47SiIxAkEAv+Sx5RIpz/OWbp8UOHE/oTfylV/yE3iZK3XGA9blDEIoiHABQIqR5VJ5eWZpooaadMMqNwaMJu9/igZ/qQtXAQJAIBTMKejMmqtCrywY7+0Lutw9U01aJhFjAU+RumPnif3Hab6LvHexS+is2eEfljpuw/RUQVyUbUgMwL1EVXnpkQJANMPd8ZI4P3EJ6qlurQE42oTcqQM3x1JnOPvkb7ZLUXZN6ob8nxTNVKJOiJ6S+hD75CFiuWbb/z9VdCLUjN2aLQ==";
public static String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDsQceV9Z39PLkbJryDntObF6hH/dNJ0Qj8dVfDe6jOJz/oAwoKr5LbbpXaEkEsy0aikC0bOBEF8iQzUI8LtlPbKJnSkuvMssdC01zMb5ZB9Ge5O1S70KfjjFAwPQkVAad8r8pQEDW8A0iaJXS/WUuZzeC/G6fgXCPC/ZQZDfnYsQIDAQAB";
public static void main(String[] args){
getKey();
}
public static void getKey(){
RSA rsa = new RSA();
String publicKeyBase64 = rsa.getPublicKeyBase64();
String privateKeyBase64 = rsa.getPrivateKeyBase64();
System.out.println(publicKeyBase64);
System.out.println(privateKeyBase64);
}
/**
* @author: LiuHangJing
* @Date: 2023/4/20 17:53
* @Description: 公钥加密
*/
public static String encrypt(String content, String publicKey){
RSA rsa = new RSA(null, publicKey);
// 公钥加密,私钥解密
byte[] encrypt = rsa.encrypt(StrUtil.bytes(content, CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey);
String originalString = new String(new Base64().encode(encrypt));
return originalString;
}
/**
* @author: LiuHangJing
* @Date: 2023/4/20 17:54
* @Description: 解密
*/
public static String decrypt(String enContent, String privateKey){
RSA rsa = new RSA(privateKey, null);
byte[] decrypt = rsa.decrypt(enContent, KeyType.PrivateKey);
String str = StrUtil.str(decrypt, CharsetUtil.CHARSET_UTF_8);
return str;
}
}
RSA加密
原创
©著作权归作者所有:来自51CTO博客作者刘兔教你呀的原创作品,请联系作者获取转载授权,否则将追究法律责任

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章