SimpleSmile_5177 2018-10-09 10:45 采纳率: 25%
浏览 3156
已采纳

java中使用Base64的加密方法将byte[]加密成一个字符串的问题?

图片说明

这上面那个就是将byte[]加密的方法。
 public static void main(String[] args) throws IOException {
        File file = new File("C:\\Users\\libai\\Desktop\\s.pdf");
        FileInputStream fis = new FileInputStream(file);
        ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
        byte[] b = new byte[1000];
        int n;
        byte[] buffer;
        while ((n = fis.read(b)) != -1) {
            bos.write(b, 0, n);
        }
        fis.close();
        bos.close();
        buffer = bos.toByteArray();

        File file1 = new File("C:\\Users\\libai\\Desktop\\x.pdf");
        FileInputStream fis1 = new FileInputStream(file1);
        ByteArrayOutputStream bos1 = new ByteArrayOutputStream(1000);
        byte[] b1 = new byte[1000];
        int n1;
        byte[] buffer1;
        while ((n1 = fis1.read(b1)) != -1) {
            bos1.write(b1, 0, n1);
        }
        fis1.close();
        bos1.close();
        buffer1 = bos1.toByteArray();
        String base64Encryption = Base64Encryption(buffer);
        System.out.println("第一条"+base64Encryption);
        String base64Encryption1 = Base64Encryption(buffer1);
        System.out.println("第二条"+base64Encryption1);
    }

这是测试代码
运行的瞬间,打印出的是这样,
图片说明

过了一秒多的时间,控制台变成这样了,
图片说明

不清楚是怎么回事?我是想加密多个文件,但是这样只是有最后一条的加密信息。求大神指点。

  • 写回答

2条回答 默认 最新

  • 玄尺 2018-10-09 11:05
    关注

    这是控制台的问题,控制台的buffer有上限,有可能是第一行太长了,控制台只保存了最后一行。
    by the way,base64使用场景主要用于编码(将字符串去掉一些特殊符号),前端一般用于小图片的编码,以及字节数组字符串可读,没有加密功能。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器