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

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 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件
  • ¥15 visual studio2022中文乱码无法解决
  • ¥15 关于华为5g模块mh5000-31接线问题