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

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使用场景主要用于编码(将字符串去掉一些特殊符号),前端一般用于小图片的编码,以及字节数组字符串可读,没有加密功能。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • SimpleSmile_5177 2018-10-10 05:51
    关注

    谢谢,找到问题了,是我这代码写的有问题。

    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#tensorflow#的问题:有没有什么方法可以让机器自己学会像素风格的图片
  • ¥15 Oracle触发器字段变化时插入指定值
  • ¥15 docker无法进入容器内部
  • ¥15 qt https 依赖openssl 静态库
  • ¥15 python flask 报错
  • ¥15 改个密码引发的项目启动问题
  • ¥100 CentOS7单线多拨
  • ¥15 debian安装过程中老是出现无法将g21dr复制到g21dr怎么解决呀?
  • ¥15 如何用python实现跨工作簿的指定区域批量复制粘贴
  • ¥15 基于CH573f的雷迪安CR1400m通讯代码