WLKN中文网

领取MOLI红包

java实现文件加密解密多种方法

发布日期:2025-01-03 18:49    点击次数:167

一、对于文件流读写取的方式对比: inputStream.read()与OutputStream.write()单字节读取,效率低下inputStream.read(new byte[80*1024])与OutputStream.write(new byte[80*1024])固定数组读取,经测试数组增加到80k左右性能最佳nputStream.read(inputStream.available()) 与OutputStream.write(inputStream.available())按文件大小一次性读取,如文件过大有内存溢出风险BufferedInputStream.read()与BufferedOutputStream.write()默认有一个8K的缓存数组 二、循环每个字节加解密(此方法效率最低): 1.通过inputStream.read()单字节加密,inputStream.read()返回的是一个字节的内容(0-255之间的数字),可直接异或加密: 2.通过inputStream.read()单字节解密: 三、加载整个文件加解密(效率快,有内存溢出风险): 1.通过inputStream.read(bytes) 加载整个文件,inputStream.read(bytes)返回bytes大小的字节,放入bytes数组中,循环异或加密: 2.通过inputStream.read(bytes) 加载整个文件解密: 四、小数组加载文件加解密(效率快,无内存溢出风险)【推荐】: 1.通过inputStream.read(b) 加载整个文件,inputStream.read(b)返回b大小的字节,放入b数组中,循环异或加密: 2.通过inputStream.read(b) 加载整个文件解密: 五、解决小数组读取文件流后,office文档打开异常的问题: 注意看下面的代码: 原因:这是文档最后一次读取文件,剩余的文件流不足b.length造成的,不足时会在数组中补0,造成上传后的文件与原文件有出入。解决方案1:采用byte[] bytes = new byte[inputStream.available()];解决方案2(推荐): 总结  到此这篇关于java实现文件加密解密的文章就介绍到这了,更多相关java文件加密解密内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

 




Powered by WLKN中文网 @2013-2022 RSS地图 HTML地图

Copyright Powered by365站群 © 2013-2024