# RSA加密与解密

引用hutool工具依赖

  1. 公钥加密

    /**
     * 公钥加密
     */
    @Test
    public void testEncrypt() {
    
        //公钥
        String publicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl0fLyAJxmRzeSbvTo13k\n" +
                "7idACgCRnI3F2tN085YkHZj0sLzc2hGJRx0hGUWGFmzhNPSauw0Ur31rXOa/BJZo\n" +
                "hqFyeJsWLxnKhCNtJ4nezYKaWfuZka+uFBQnOmrapS2QizwQjplRqgCRu3sfsYs8\n" +
                "G7m7YXcWwwVAx9kt38zOEpnoj6lkW5jcz5fyk2JARjZdhH0zdastsSL1pSaiMbsg\n" +
                "HaF3+Z6i8u8hiy44jPxuVLRrEGWtG/G5hhCkYIsQbxML/+KqcbrhSWfzDUAIXHs0\n" +
                "a7H+xMWUJBTqgtW/dA3JjIlN+Q1Eyhvl2aaSYDGVmE/wSOJS787KKRBTZb5C48eX\n" +
                "mQIDAQAB";
        RSA rsa = SecureUtil.rsa(null, publicKey);
    
        String encryptBase64 = rsa.encryptBase64("U3803180317", KeyType.PublicKey);
        System.out.println("加密后的密文:"+encryptBase64);
    }
    
  2. 私钥解密

    /**
     * 私钥解密
     * @param encryptBase64 加密的密文
     */
    public void testDecrypt(String encryptBase64) {
        //私钥
        String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCXR8vIAnGZHN5J\n" +
                "u9OjXeTuJ0AKAJGcjcXa03TzliQdmPSwvNzaEYlHHSEZRYYWbOE09Jq7DRSvfWtc\n" +
                "5r8ElmiGoXJ4mxYvGcqEI20nid7NgppZ+5mRr64UFCc6atqlLZCLPBCOmVGqAJG7\n" +
                "ex+xizwbubthdxbDBUDH2S3fzM4SmeiPqWRbmNzPl/KTYkBGNl2EfTN1qy2xIvWl\n" +
                "JqIxuyAdoXf5nqLy7yGLLjiM/G5UtGsQZa0b8bmGEKRgixBvEwv/4qpxuuFJZ/MN\n" +
                "QAhcezRrsf7ExZQkFOqC1b90DcmMiU35DUTKG+XZppJgMZWYT/BI4lLvzsopEFNl\n" +
                "vkLjx5eZAgMBAAECggEAeZ7u5c2RJldfHkgyzZQfCJfllCUA66vO9S4rR+nc/y6J\n" +
                "Cc3MgES46MMyaO7L7ht6sugzvU22458hQX8A8t85CYOiU/Pa0eMaPUF979uXlAD7\n" +
                "tnvf6pAik2HgZ8agIUuQeV/Ar+PzE4mBoAhMYqBdoqyfSKxFUGRYwFKJ3vL4eVqm\n" +
                "fBihXPf1L1c6iil1CLudvJiHFikaJpWbQ1ADuJuV4dKtvoAK+1Xvg3ZgtDXeP6nQ\n" +
                "rLgnXPi04LFtefnAtjOeeMRfhP6GmsUJ2faFJSzo7sAEPKuUVHOyMGWSW/32PGrV\n" +
                "qW6mVXa5V/ZofueLZgt5hERJxhDMWBiCAsa8ARnIAQKBgQDGwsyei5NRn62PI/MT\n" +
                "tfxKQlMLoLNa3z3YPU6lPosfbmBtQIT6FjGqkgrcnfTvRbK1ovNmwsMzulDh9hPi\n" +
                "XqUpu5keLpezmWFaxB7MO79euA8yDMZ0reVW0LjGlH/aHVcUwU66grJ5z1I7eASX\n" +
                "eB5TlS0ADsq0ZQiJewTtUaCNUQKBgQDC2JsENgzDW7N0m/XTJqbhduuOdLllcLhn\n" +
                "rrA6eomRN5HRCKPCOmnDWLsCyp1eTYx5YUakd6fd6HuDFF8bLGUTkmcgd9rmqktL\n" +
                "j3u6teh3lC9rA8trpblg/SxGD+hWPB2Iza9hwY6Cl24RxQlqRlTAxmBwwkHMpXRr\n" +
                "y72drRmzyQKBgQCOM8CBjgqQU1WxG19FsuYVmu4fW5H2adGta+9geia/DhEfGRIK\n" +
                "euZ9yo7K2JfsuEjrevH5i05tK9fCUnRXeK9h9D3QQjV24T2t2rLOG9EGy1jTziAO\n" +
                "SnvSaPJJ4OS4AFXVG5hgCDH4xENpGKzwUZgg5JGVgP+1oLNC6SjVQZlEgQKBgHL9\n" +
                "TDbnAw9EDhtyc1hCxlfnS8sNveBM7rdZ0+0fJhLKncakd6iHuqUrt2pFUyw1TgLQ\n" +
                "UtV7PFls+393RU2PHLO5Qh1aPpjExZz5N8cP1frEPFvGqIWGD2pa34cVmkNSRQfY\n" +
                "g3mItmcBoVbhVtYeXaRLLt0894Ij3xpC6kukvbdpAoGAWse6tQ0ZPXmu9otxcNpc\n" +
                "ekJ5mhykBQt/kEIN2o4KdM4UIp+E7YhR5D/CRCxPU6fOCFit2zHnotlvYyTRzscV\n" +
                "S8ggli5/KRLo/vz1/3WfxMWFz2U71IQvEYk4V/f5Osrng6MXId5yxq2HoUDcJAd/\n" +
                "b3gidd3KGjCHwGpEdjIiY2Q=";
        RSA rsa = SecureUtil.rsa(privateKey, null);
    
        String decryptStr = rsa.decryptStr(encryptBase64, KeyType.PrivateKey);
        System.out.println("解密后文本:"+decryptStr);
    }