关于hutool工具箱进行RSA非对称加密的使用笔记
首先是导入hutool工具包的maven依赖
<!-- huTool工具箱 --> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.22</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15to18</artifactId> <version>1.69</version> </dependency>
然后是 生成密钥对(只生成需要一次)
接着是使用私钥加密公钥解密或者公钥加密私钥解密(根据需求)
@Test public void rsa(){ String text = "123"; //生成公私钥对 KeyPair pair = SecureUtil.generateKeyPair("RSA"); PrivateKey privateKey = pair.getPrivate(); PublicKey publicKey = pair.getPublic(); //获得私钥 String privateKeyStr = bytesToBase64(privateKey.getEncoded()); System.out.println("私钥:" + privateKeyStr); //获得公钥 String publicKeyStr = bytesToBase64(publicKey.getEncoded()); System.out.println("公钥:" + publicKeyStr); RSA rsa = new RSA(privateKeyStr, publicKeyStr); System.out.println(rsa); //公钥加密,私钥解密 byte[] encrypt = rsa.encrypt(StrUtil.bytes(text, CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey); System.out.println("公钥加密:" + bytesToBase64(encrypt)); byte[] decrypt = rsa.decrypt(encrypt, KeyType.PrivateKey);
//解密的同时把解密的结果转换成String字符串输出 System.out.println("私钥解密:" + new String(decrypt,StandardCharsets.UTF_8));
}
借鉴了大佬的文章,这里只是做个笔记需要的可以看大佬的文章 https://www.cnblogs.com/hdwang/p/16310314.html
分类:
学习问题记录
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库