使用自带的公钥和私钥进行加密解密
public static void main(String[] args) {RSA rsa = new RSA();System.out.println("公钥:" + rsa.getPublicKeyBase64());System.out.println("私钥:" + rsa.getPrivateKeyBase64());String text = "Hello, Hutool RSA!";String encrypt = rsa.encryptBase64(text, KeyType.PublicKey);System.out.println("加密后:" + encrypt);String decrypt = rsa.decryptStr(encrypt, KeyType.PrivateKey);System.out.println("解密后:" + decrypt);}

自定义公钥和私钥:这是完整的加密和解密过程
public static void main(String[] args) throws Exception {// 生成一对RSA密钥KeyPair keyPair = generateRSAKeyPair();PublicKey publicKey = keyPair.getPublic();PrivateKey privateKey = keyPair.getPrivate();// 编码成Base64字符串String publicKeyStr = java.util.Base64.getEncoder().encodeToString(publicKey.getEncoded());String privateKeyStr = java.util.Base64.getEncoder().encodeToString(privateKey.getEncoded());System.out.println("公钥:" + publicKeyStr);System.out.println("私钥:" + privateKeyStr);// 使用Hutool的RSA类,传入私钥和公钥字符串RSA rsa = new RSA(privateKeyStr, publicKeyStr);String text = "Hello, custom key RSA!";String encrypt = rsa.encryptBase64(text, KeyType.PublicKey);System.out.println("加密后:" + encrypt);String decrypt = rsa.decryptStr(encrypt, KeyType.PrivateKey);System.out.println("解密后:" + decrypt);}// 生成RSA密钥对public static KeyPair generateRSAKeyPair() throws NoSuchAlgorithmException {KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); // 注意这里是RSAkeyPairGenerator.initialize(2048);return keyPairGenerator.generateKeyPair();}

只加密/解密:我这里传入 Base64 编码的 DER 格式密钥(调用上面的密钥对生成方法);如果你直接
RSA rsa = new RSA(ncisConfig.getRsapublickey());这样的格式是要求传入PEM格式的密钥,否则允许会报错
public static void main(String[] args) throws Exception {// 已编码成Base64字符串公钥和私钥String publicKeyStr = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkpSuoj/csq4trVIjhtUKIesKOf5YLUyr9MEFJyVwO4EjiBSHwvxBYvryFrM3S8jZoBN/RH5r/RhhVLHspqNiXNTMBL6r8AV5/14ABxmL3MfI4xOeK/2e2S7FdLYtUI+IvnXj3BRh35wryqu3kALZFv+H05NfIDa17ZNhDxBmwBMZxvHV2oCOCzYHt1Kpv7J5MkCaWFBul5ma7076/g+T1M1YsuuycNhTywfoQqyQJ/fA2/I9zfL5TRJJ2EPpaOZMYEcjr0mRiEVd9jCagl2i32dBJDbYDaKqisZ7LU0GESxX4HQjFFYjR36i+O40x36+1aJthW2MMPQO0pEnebAK2QIDAQAB";//rsa生成的私钥String privateKeyStr = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCSlK6iP9yyri2tUiOG1Qoh6wo5/lgtTKv0wQUnJXA7gSOIFIfC/EFi+vIWszdLyNmgE39Efmv9GGFUseymo2Jc1MwEvqvwBXn/XgAHGYvcx8jjE54r/Z7ZLsV0ti1Qj4i+dePcFGHfnCvKq7eQAtkW/4fTk18gNrXtk2EPEGbAExnG8dXagI4LNge3Uqm/snkyQJpYUG6XmZrvTvr+D5PUzViy67Jw2FPLB+hCrJAn98Db8j3N8vlNEknYQ+lo5kxgRyOvSZGIRV32MJqCXaLfZ0EkNtgNoqqKxnstTQYRLFfgdCMUViNHfqL47jTHfr7Vom2FbYww9A7SkSd5sArZAgMBAAECggEABqgIbo2U3mspEtpZV6miZ9wbEkggRZDArE3JoWrChOLX5x/7jEy7qwMduqjEmMUg5Az1AuDBoA3ORoDWVmwYyIHQ8MdrdAWW2GEytVMHj9NljLGBRZq8u6MZzDOFRxSSXDsEfNcftkskWydFUwP2F/4rP/d//EZpW5KnETHCLY2yGh5vnBmVnHoCLVngiHQ1WOtZLOdRHqI9nH6PtpNJEYv6IclovqsQ/4qdj9ADmmUgUWypwxF6IaB6/R0h7WrteYHZ3jdrlMd7fSsqkXGHK4zrEOPm2p9VOCwZupM3VYWHtCP58Se0I5q4Co/rRs2b54YcOtoqHFuBTpPFqCcfaQKBgQC9t3C2OfCk/JkBUSbylGD30USVryY+WjiVJs1bwGZqGn7Au1vtUdP04PaZeZhgWxHHgEeFhTyD168cA4fy9/i8TQghnXPQvVU+aQIuerZSn4+KQX7ob9Xo6ZUKVqI8utsJAwfSlNy6MCcpMpWr/A3C6lwfNtDxf2ZsCT1LBeceVQKBgQDFyxuTe4pNDpyXHJgpGSObEfoKTJVonKyAAz4AjPG7rm65MMcTx02Mt/O1Xm0r7/cxoIj1bpVXeNyO/VDkSXDRuu24/bUm+Wq+2oQTf6rFL1hjYvmbfyk/o0yCv+21SqXhH/o4if+/DIP8hB+fALbC/2kLT3a7xA3z8k8D7sR2dQKBgCzl+wDFWZRSS4uqPwNt5j0AA7FBEFX1WCrEUhmCwTofJxxJuwnBMd5kVzgfNNao9t42F7cbvyScqM6Cb2wrD2zQ9jmuX7ho9oGcrG1/kSKgrIHV2kj8Hq3Oif02X5LrzeamFvXZURunRb1UQWPAdSlJ+Z9Rg8WDlyO+VAkrTnU5AoGADvzS/BvyYOBokTLDfOnAvvFfxwQClki48YJNYnFLp/MRxMqjayZBBBa0Stv63cdzLbmCZ0aX3mb0H4mmZYYDHIFTnh7raSahJhEczPVxlTt/MRjA3T2HfKD9HTM56fDcHPD1Xu9mB64FGk9QrhW5w5Di/s5oqtWyUPfdcOjYzjkCgYA+IbGJ7f0zyhVeLmehLdzhle+rNkEXPMs40iVn8CRzDy1/wNlgR3+un5SdJzuCHMF4FCDdgady6WAoz47daCrcMBHkV5JNaxU6e2ZA4gELSgpBJwDHIY+H2Y7gkyamhANGvzUObOGlTwjw2mATi2GIauiFcpMHUNmgaOnZBVL7OA==";//加密后的苏剧String encryptData = "gRKwhY/hRtVarhV0wzDbpG78QzncPqt8yzq60J9EUVWPgso6Ul+7ao/OWSDR8KheRaa2rUqLppVVDJMg9Ywq268QVgocdgvBFF33wdYZk/HzF1WPHFV1esXGXzU+2I3QHw/JUFmvxov/7vBLMVnWMyGjUvO1StHk+56HjJz1iXDK4g3m+oN9xEC7nwvyJ5r/RWBQG+FmtPpuIioPxRAOuOpBwNHK9pXHLRzeNoLThR1c1wOQWuMpVgFtWmd255bQo5avJZ76nynCU1WjuEfeEL1vEStpUoB7IBvt5UO3CtW6K4NcRyvyE0f3BrcVp1rQ5XOq5vxBkERghJQIcwN77w==";//需要加密的数据String decryptData = "Hello, custom key RSA!";System.out.println("原始加密数据"+"gRKwhY/hRtVarhV0wzDbpG78QzncPqt8yzq60J9EUVWPgso6Ul+7ao/OWSDR8KheRaa2rUqLppVVDJMg9Ywq268QVgocdgvBFF33wdYZk/HzF1WPHFV1esXGXzU+2I3QHw/JUFmvxov/7vBLMVnWMyGjUvO1StHk+56HjJz1iXDK4g3m+oN9xEC7nwvyJ5r/RWBQG+FmtPpuIioPxRAOuOpBwNHK9pXHLRzeNoLThR1c1wOQWuMpVgFtWmd255bQo5avJZ76nynCU1WjuEfeEL1vEStpUoB7IBvt5UO3CtW6K4NcRyvyE0f3BrcVp1rQ5XOq5vxBkERghJQIcwN77w==");System.out.println("原始公钥:" + publicKeyStr);System.out.println("原始私钥:" + privateKeyStr);System.out.println("原始明文:" + decryptData);System.out.println("原始加密后:" + encryptData);//---------------------------------------------------// 使用Hutool的RSA类,加密RSA rsa = new RSA(null,publicKeyStr);String encrypt = rsa.encryptBase64(decryptData, KeyType.PublicKey);System.out.println("加密后:" + encrypt);// 使用Hutool的RSA类,解密RSA rsa1 = new RSA(privateKeyStr,null);String decrypt = rsa1.decryptStr(encrypt, KeyType.PrivateKey);System.out.println("解密后:" + decrypt);}
