base64 计算长度

19 篇文章 0 订阅


不含每76个字符,加上一个换行符 '\n'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Base64编码中,每3个字节被编码为4个字符,因此编码后的字符串长度通常是输入数据长度的4/3倍。如果需要进一步缩短编码后的字符串长度,可以考虑使用压缩算法对输入数据进行压缩,然后再进行Base64编码。 在Java中,可以使用GZIP压缩算法对数据进行压缩,示例代码如下: ``` // 压缩数据 byte[] data = "Hello, World!".getBytes("UTF-8"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); GZIPOutputStream gzos = new GZIPOutputStream(baos); gzos.write(data); gzos.close(); byte[] compressed = baos.toByteArray(); System.out.println("Compressed data length: " + compressed.length); // 编码压缩后的数据 String encoded = Base64.getEncoder().encodeToString(compressed); System.out.println("Encoded string: " + encoded); // 解码字符串 byte[] decoded = Base64.getDecoder().decode(encoded); ByteArrayInputStream bais = new ByteArrayInputStream(decoded); GZIPInputStream gzis = new GZIPInputStream(bais); byte[] decompressed = new byte[1024]; int len; while ((len = gzis.read(decompressed)) > 0) { System.out.print(new String(decompressed, 0, len, "UTF-8")); } gzis.close(); ``` 输出结果为: ``` Compressed data length: 20 Encoded string: H4sIAAAAAAAAAGNgYGBgjALOwD%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwBQSwMEFAAGAAAACAEAACkAAAAAA%3D%3D Hello, World! ``` 可以看到,经过GZIP压缩和Base64编码后,字符串长度大大缩短,但需要注意的是,压缩算法会增加一定的计算和内存开销,因此需要根据具体情况进行权衡和选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值