// XML需要使用BASE64进行加密,缩小和编码吗?我已经为此使用了这段代码,但没有得到确切的输出。

public String encryptDeflateAndBase64(String decryptedString) throws IOException {
        byte[] b=decryptedString.getBytes("UTF-8");
        byte[] c = new byte[550];
        Deflater compresser=new Deflater();
        compresser.setInput(b);
        compresser.finish();
        System.out.println(compresser.deflate(c));
        compresser.end();
        /*ByteArrayOutputStream bos = new ByteArrayOutputStream(decryptedString.length());
        byte[] buf = new byte[4096];
        while (!compresser.finished()) {
            int count = compresser.deflate(buf);
            bos.write(buf, 0, count);
        }
        bos.close();
        byte[] compressedData = bos.toByteArray();
*/       byte[] output = Base64.encodeBase64(c);
        return new String(output);
    }

最佳答案

    //Remove: System.out.println(compresser.deflate(c));
    int count = compresser.deflate(c);
    ByteBuffer bb = ByteBuffer.wrap(c, 0, count);
    byte[] output = Base64.getEncoder().encode(bb);


我在哪里使用java.util.Base64。为了不复制字节,我使用了ByteBuffer。

10-04 15:19