当前位置: 首页 > ai >正文

使用Hutool工具进行rsa加密解密示例:

 使用自带的公钥和私钥进行加密解密

    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);}

http://www.xdnf.cn/news/12241.html

相关文章:

  • Linux进程替换以及exec六大函数运用
  • 【电赛培训课】测量与信号类赛题分析
  • Power Apps:自动发送运行错误邮件
  • 图着色问题(回溯)
  • Redux:不可变数据与纯函数的艺术
  • Windows和Ubuntu双系统,删除Windows
  • 用WPDRRC模型,构建企业安全防线
  • 使用Java实现M3U8视频文件合并的完整指南
  • openGauss数据库备份与恢复实践
  • 口语考试准备part1(西电)
  • Python制作史莱姆桌面宠物!可爱的
  • Apollo Auto:Cyber RT 与 ROS 通信
  • 攻防世界RE-happyctf
  • 对话式AI文本转语音合成软件CSM整合包,Sesame AI Labs多人文字转语音工具
  • CUDA安装与多版本管理
  • 算法训练第九天
  • 无法下载CUDA,下载界面链接打开异常
  • 永磁同步电机无感观测器与在线参数识别分别是什么,区别与联系是什么
  • [科研理论]机器人路径规划算法总结及fast_planner经典算法解读
  • Python6.5打卡(day37)
  • HSL颜色控制及使用示例(Hue-Saturation-Lightness)
  • 整合swagger,以及Knife4j优化界面
  • 【机械视觉】Halcon—【七、blob阈值分割】
  • nginx 同时支持ipv4与ipv6 配置
  • SLG游戏分析
  • Seata 分布式事务 AT 模式
  • IP如何挑?2025年海外专线IP如何购买?
  • python打卡day45@浙大疏锦行
  • Vehicle HAL(5)--vhal 实现设置属性的流程
  • Silicon EFR32xG22 错误问题和解决办法汇总