java对大字符加密导致频繁gc怎么处理

java   有一个接口是专门用来加密的 每次调用都会传入大字符 隔一段时间就会导致频繁gc 导致服务器直接挂掉  该怎么处理

是否可以考虑定义为静态对象,静态变量,静态方法呢?

      //接口
        String key = "a67de031547aecce6241df153de54db5";
      //前端传入的大字符
        String data = hashMap.get("data").toString();
        String s = SM4Util.decryptEcb(key, data);
        return R.ok().put("data",s);


     //加密方法
       public static String decryptEcb(String hexKey, String cipherText) {
        // 用于接收解密后的字符串
        String decryptStr = "";
        // hexString-->byte[]
        byte[] keyData = ByteUtils.fromHexString(hexKey);
        // hexString-->byte[]
        byte[] cipherData = ByteUtils.fromHexString(cipherText);
        // 解密
        byte[] srcData = new byte[0];
        try {
            srcData = decrypt_Ecb_Padding(keyData, cipherData);
            // byte[]-->String
            decryptStr = new String(srcData, ENCODING);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return decryptStr;
    }


public static byte[] decrypt_Ecb_Padding(byte[] key, byte[] cipherText) throws Exception     
    {
        Cipher cipher = generateEcbCipher(ALGORITHM_NAME_ECB_PADDING, 
                                              Cipher.DECRYPT_MODE, key);
        return cipher.doFinal(cipherText);
    }

    /**
     * 生成ECB暗号
     *
     * @param algorithmName 算法名称
     * @param mode          模式
     * @param key
     * @return
     * @throws Exception
     * @explain ECB模式(电子密码本模式:Electronic codebook)
     */
    private static Cipher generateEcbCipher(String algorithmName, int mode, byte[] key) 
       throws Exception {
        Cipher cipher = Cipher.getInstance(algorithmName, 
        BouncyCastleProvider.PROVIDER_NAME);
        Key sm4Key = new SecretKeySpec(key, ALGORITHM_NAME);
        cipher.init(mode, sm4Key);
        return cipher;
    }

 

接收的代码中有没有gc回收不了的垃圾未处理。