首页 > 其他分享 >关于hutool工具箱进行RSA非对称加密的使用笔记

关于hutool工具箱进行RSA非对称加密的使用笔记

时间:2022-11-30 21:44:30浏览次数:58  
标签:System 公钥 私钥 String RSA 解密 println 工具箱 hutool

首先是导入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

标签:System,公钥,私钥,String,RSA,解密,println,工具箱,hutool
From: https://www.cnblogs.com/jdearfaust/p/16939853.html

相关文章

  • Python工具箱系列(十七)
    很多软件工程师都认为MD5是一种加密算法,然而这种观点是不对的。作为一个1992年第一次被公开的算法,到今天为止已经被发现了一些致命的漏洞。本文讨论MD5在密码保存方面的......
  • win10 git报错:Unable to negotiate with port: no matching host key type found. The
    现象已经生成id_rsa的密钥,并且在git上进行了配置。但是用gitclone失败。报错:Unabletonegotiatewithport:nomatchinghostkeytypefound.Theiroffer:ssh-rsa。......
  • Python工具箱系列(十六)
    前面介绍了对称加密算法,本文将介绍密码学中另一类重要应用:消息摘要(Digest),什么是消息摘要?简单的定义是:对一份数据,进行一个单向的Hash函数,生成一个固定长度的Hash值,这个值......
  • hutool发送http请求
    hutool发送http请求环境SpringBoot+Maven在Maven中导入hutool工具包和junit单元测试包<!--hutool工具包--><dependency> <groupId>cn.hutool</groupId> <artif......
  • 使用RSA公钥和私钥实现数据加密通信
    importbase64fromCryptoimportRandomfromCrypto.PublicKeyimportRSAfromCrypto.CipherimportPKCS1_v1_5defget_cipher(key_length):#生成伪随机数r_gen......
  • Java:Hutool工具箱之hutool-jsonJSON数据读取转换处理
    文档https://hutool.cn/docs/#/json/概述依赖<dependency><groupId>cn.hutool</groupId><artifactId>hutool-json</artifactId><version>5.8.10</versi......
  • matlab工具箱TTSBOX源码中文分析
    functionwav=tts(txt,voice,pace,fs)%TTStexttospeech.%TTS(TXT)synthesizesspeechfromstringTXT,andspeaksit.Theaudio%formatismono,16bit,1......
  • RSA加密与解密
    RSA加密算法是一种非对称加密算法,所谓非对称,就是加密与解密用的钥匙是不同的安装npminstalljsencrypt引入importJSEncryptfrom'jsencrypt/bin/jsencrypt';封......
  • Hutool介绍(详)Java工具类库
    Hutool介绍(详)于 2022-05-0510:40:12 首次发布版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。简介中文官网:https://plus.......
  • java工具类-jwt-RSA256算法加密
    加密数据(用户信息)packagetestJWT;/***@authorZRY*@version1.0*/publicclassUser{//用户idprivateintid;//用户名称private......