源文件:

加密后的文件:

解密后的文件:

package com.gblfy.test;import java.io.*;/*** java 实现对文件加解密的方法** @author gblfy* @date 2020-12-08*/
public class IOSercet {//获取系统类型private static String OS = System.getProperty("os.name").toLowerCase();//加密后的路径public static final String secretFilePath = "I:/666/";//解密后的路径public static final String decrypFilePath = "I:/777/";public static void main(String[] args) {//1.测试批量加密(源文件路径和加密后的文件路径不一样)getAllFileNameSecret("I:/555/");//2.测试批量加密(加密文件的源路径和解密后的路径不一样)getAllFileNameDecrypt("I:/666/");}/*** 批量解密* 适用于加密文件的路径和解密后的路径不一样的业务场景* 获取指定目录下的所有文件及子类文件夹下的所有文件** @param path 指定需要解密的目录*/public static void getAllFileNameSecret(String path) {File file = new File(path);File[] tempList = file.listFiles();for (int i = 0; i < tempList.length; i++) {if (tempList[i].isFile()) {System.out.println("文     件:" + tempList[i]);secret(tempList[i].toString());}if (tempList[i].isDirectory()) {System.out.println("文件夹:" + tempList[i]);getAllFileNameSecret(tempList[i].getAbsolutePath());}}return;}/*** 批量解密* 适用于加密文件的路径和解密后的路径不一样的业务场景* 获取指定目录下的所有文件及子类文件夹下的所有文件** @param path 指定需要解密的目录*/public static void getAllFileNameDecrypt(String path) {File file = new File(path);File[] tempList = file.listFiles();for (int i = 0; i < tempList.length; i++) {if (tempList[i].isFile()) {System.out.println("文     件:" + tempList[i]);decrypt(tempList[i].toString());}if (tempList[i].isDirectory()) {System.out.println("文件夹:" + tempList[i]);getAllFileNameDecrypt(tempList[i].getAbsolutePath());}}return;}/*** 批量加密* 适用于源路径和加密后的路径不一样的业务场景** @param srcFileName 源文件名称*/public static void secret(String srcFileName) {long a = 0;long b = 0;createDir(secretFilePath);String secretFileName = getFileName(srcFileName);try {BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFileName));BufferedOutputStream bos = new BufferedOutputStream(newFileOutputStream(secretFilePath + secretFileName));int n;a = System.currentTimeMillis();while ((n = bis.read()) != -1) {bos.write(n + 1);}b = System.currentTimeMillis();bis.close();bos.close();} catch (IOException e) {e.printStackTrace();}System.out.println("加密拷贝成功!");System.out.println("加密用时:" + (b - a) + "ms");}/*** 批量解密* 适用于加密文件的路径和解密后的路径不一样的业务场景** @param secretFileName 加密的文件名称*/public static void decrypt(String secretFileName) {long a = 0;long b = 0;try {createDir(decrypFilePath);String decryptFileName = getFileName(secretFileName);BufferedInputStream bis = new BufferedInputStream(new FileInputStream(secretFileName));BufferedOutputStream bos = new BufferedOutputStream(newFileOutputStream(decrypFilePath + decryptFileName));int n;a = System.currentTimeMillis();while ((n = bis.read()) != -1) {bos.write(n - 1);}b = System.currentTimeMillis();bis.close();bos.close();} catch (IOException e) {e.printStackTrace();}System.out.println("解密拷贝成功!");System.out.println("解密用时:" + (b - a) + "ms");}/*** 目录不存在,则批量创建** @param fileDir*/public static void createDir(String fileDir) {File file = new File(fileDir);//如果文件夹不存在则创建if (!file.exists() && !file.isDirectory()) {System.out.println("//不存在");file.mkdirs();}}/*** 文件名称处理** @param dealFileName* @return*/public static String getFileName(String dealFileName) {if (OS.indexOf("windows") >= 0) {//windowsreturn dealFileName.substring(dealFileName.lastIndexOf("\\") + 1);} else {//linuxreturn dealFileName.substring(dealFileName.lastIndexOf("/") + 1);}}
}

java实现对文件加解密操作相关推荐

  1. Java实验06-GUI文件加解密软件,ScrollPanel嵌套Boxlayout,DES分组加密算法,进度条控制

    先上效果图,大作业勉强算写了一天半才写出来(疯狂摸鱼我好菜),昨天和同学玩愤怒的小鸟,火柴人大乱斗,红色警戒打到凌晨两点才回宿舍.呜呜呜,摸鱼好快乐. 没什么太大的难度. 直接上效果图吧 有点丑,单纯 ...

  2. KaLi Linux下使用OpenSSL文件加解密操作

    作者:覃杨森 联系邮箱:qinyangsen991@126.com 声明:转载及使用请注明来源 关键字:KaLi Linux:OpenSSL:文件加密:加密工具

  3. python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...

    #-*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/k ...

  4. 文件加解密,AIDE入侵检测,扫描与抓包

    加/解密概述 发送方:明文->密文 接收方:密文->明文 加密目的及方式 确保数据的机密性 对称加密:加密/解密用同一个密钥 非对称加密:加密/解密用不同的密钥(公钥.私钥) 保护信息的完 ...

  5. 基于CH375的嵌入式USB文件加解密系统的设计

    基于CH375的嵌入式USB文件加解密系统的设计 [日期:2008-7-21] 来源:电子技术应用  作者:华中科技大学 电子与信息工程系, 湖北 武汉 430074 [字体:大 中 小] <s ...

  6. JAVA实现PGP/GPG加解密

    注:文章皆为个人纪录,可用性请以最终结果为准,若有错还请大佬们指出,谢谢! 一.加解密的准备资料 1.1  公钥 (用于加密) 1.2  私钥(用于解密) 1.3   私钥key (用于验证私钥) 导 ...

  7. 文件加解密(任意文件类型的文件)

    直接上代码: 支持任意类型的文件的加密和解密 可以自由修改密钥 需要修改文件路径 文件加解密. #define _CRT_SECURE_NO_WARNINGS #include <stdlib. ...

  8. 国密 SM4 文件加解密

    国密算法SM4 对文件加解密 说明:调用开源bcprov-jdk15on 加密算法工具,使用SM4算法,对文件进行加密.解密:文件流的操作使用hutool工具包来实现. 引用依赖 <depend ...

  9. java实现国密加解密

    1. pom依赖 <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-j ...

最新文章

  1. 2021年大数据Kafka(十一):❤️Kafka的消费者负载均衡机制和数据积压问题❤️
  2. Dropbox如何使用机器学习从数十亿图片中自动提取文字
  3. Percona XtraDB Cluster(转)
  4. Kindeditor富文本编辑器使用
  5. 有一整片蓝天 停住时间。
  6. 前端学习(2459):账户设置
  7. 【Java】异常处理体系概述
  8. 使用Travis-CI 与 Github Webhook自动部署你的页面
  9. 设计 Pastebin.com
  10. 表情识别项目综述论文阅读总结
  11. Typora 中文字体深度修改
  12. 1023组成最小数(20分) - 用不到20行代码破解20分的题目
  13. 使用windows API区分移动硬盘和本地硬盘
  14. 『Python开发实战菜鸟教程』实战篇:一文带你了解人脸识别应用原理及手把手教学实现自己的人脸识别项目
  15. Switch 开关,将字写在滑块上面
  16. 开运算—lhMorpOpen
  17. 风靡全球的华为手机投屏技巧!手机变成电脑,简直不要太酷!
  18. “衡水中学模式”深度解析
  19. SD卡及其写保护功能
  20. 极光推送Android集成以及使用

热门文章

  1. “老鹰捉小鸡”小学数学题碾压成人智商,这样的题目有什么意义?
  2. 世界上最伟大的十个公式,看看你懂得几个?
  3. 如何理解马尔可夫决策过程?
  4. 23种设计模式之桥梁模式
  5. lucene详细说明文档
  6. 【转载保存】java静态方法继承与保存的问题
  7. Dubbo-go 服务代理模型
  8. 【指标需求思考】如何做好指标类需求建设
  9. 技术干货 | mPaaS 框架下如何使用 Crash SDK 对闪退进行分析?
  10. 双11还能创造什么新技术?