使用hutool工具類加密
官方API https://apidoc.gitee.com/dromara/hutool/
加密代碼
package com.rosellete.iescp.temp; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.asymmetric.KeyType; import cn.hutool.crypto.asymmetric.RSA; import org.bouncycastle.util.encoders.Base64; import java.security.KeyPair; import java.security.PrivateKey; import java.security.PublicKey; //https://blog.csdn.net/loolly/article/details/77539928 public class Test { public static void main(String[] args) { KeyPair pair = SecureUtil.generateKeyPair("RSA"); final PrivateKey aPrivate = pair.getPrivate(); final PublicKey aPublic = pair.getPublic(); System.out.println( StrUtil.str(Base64.encode(aPrivate.getEncoded()),"UTF-8")); //創建RSA RSA rsa = new RSA(aPrivate,aPublic); //獲得私鑰 rsa.getPrivateKey(); rsa.getPrivateKeyBase64(); //獲得公鑰 rsa.getPublicKey(); rsa.getPublicKeyBase64(); String srcStr = "srcData123456"; //將 "待加密明文字符串" 通過 公鑰加密 成 "加密後的byte數組" byte[] encrypt = rsa.encrypt(StrUtil.bytes(srcStr, CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey);//公鑰加密 //將 "加密後的byte數組" 通過base64轉成 "加密後base64字符串" String encryptBase64Str = StrUtil.str(Base64.encode(encrypt), CharsetUtil.CHARSET_UTF_8); System.out.println(srcStr + "經過公鑰加密後的base64字符串:" + encryptBase64Str); //將 "加密後的byte數組" 解密成 "解密後的byte數組" byte[] decrypt = rsa.decrypt(encrypt, KeyType.PrivateKey); //將 "解密後的byte數組" 通過 私鑰解密 成"解密後的明文字符串" String decryptStr = StrUtil.str(decrypt, CharsetUtil.CHARSET_UTF_8); System.out.println("解密後的明文字符串:" + decryptStr); //私鑰加密,公鑰解密 } }