java实现对文件加解密操作

源文件:
在这里插入图片描述
加密后的文件:
在这里插入图片描述
解密后的文件:
在这里插入图片描述

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);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在工作中快速成长?致工程师的10个简单技巧

阿里妹导读&#xff1a;阿里有句非常经典的土话&#xff0c;“今天的最好表现&#xff0c;是明天的最低要求。”如何挖掘潜能、发现更好的自己&#xff1f;今天&#xff0c;阿里巴巴高级无线开发专家江建明将认知升级的方法总结出来&#xff0c;帮助你获得快速成长的秘诀&#…

1 手写第一个Win32窗口程序

1 基础概念 什么是窗口&#xff1f; 答&#xff1a;窗口就是屏幕上的一片区域&#xff0c;接受用户的输入&#xff0c;显示程序的输出。可以包含标题栏、菜单栏、工具栏以及控件等。什么是句柄&#xff1f; 答&#xff1a; 作为一种管理和操作系统资源的机制&#xff0c;提供了…

解析云原生与云计算本质区别,别再傻傻分不清楚了!

来源| comparethecloud翻译 | 天道酬勤&#xff0c;责编 | Carol出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;云应用程序是热门话题。很多时候&#xff0c;我们会遇到像云原生应用程序和云计算应用程序这样的术语。首先&#xff0c;很少有人同时使用这两…

Java 使用 zip4j 进行基本的压缩、解压、设置密码操作(version zip4j-2.6.4)

先看工具类 package space.util;import java.io.File; import java.util.List;import net.lingala.zip4j.ZipFile; import net.lingala.zip4j.model.ZipParameters; import net.lingala.zip4j.model.enums.AesKeyStrength; import net.lingala.zip4j.model.enums.EncryptionMe…

linux显示mem进行排序,Linux查看系统负载(CPU和MEM考虑)

查看占用CPU最高的10个进程[tidb:vg_adn_tidbCkhsTest:172.31.30.62 ~/tidb-ansible]$ps aux | grep -v PID | sort -rn -k | headmysql 6.6 60.4 ? Sl Nov22 : /usr/local/mysql/bin/mysqld --basedir/usr/local/mysql/ --datadir/data/data_mysql --plugin-dir/usr/local/my…

阿里开发者招聘节 | 面试题02-04:给定一个二叉搜索树(BST),找到树中第K小的节点

为帮助开发者们提升面试技能、有机会入职阿里&#xff0c;云栖社区特别制作了这个专辑——阿里巴巴资深技术专家们结合多年的工作、面试经验总结提炼而成的面试真题这一次将陆续放出&#xff08;面试题官方参考答案将在专辑结束后统一汇总分享&#xff0c;点此进入答题并围观他…

linux 当前用户执行定时任务

当前用户编辑定时任务 crontab -e#每天11点25分执行 25 11 * * * /bin/sh /app/jiazai/sql_loadv1.0/dbloadupgrade.sh #每天凌晨4点执行 0 4 * * * /bin/sh /app/jiazai/sql_loadv1.0/dbloadupgrade.sh #每天11点22分执行 22 11 * * * /bin/sh /home/oracle/1.sh当前用户查看定…

确认!别再相信Python了! 程序员:就你敢说...

程序员你有没有感觉到&#xff0c;Python最近已经刷屏到爆炸了&#xff1f;细分析Python之所以刷屏&#xff0c;主要是因为人红是非多&#xff0c;在编程界它是一种特殊的存在&#xff0c;有人认为&#xff0c;只有用Python才能优雅写代码&#xff0c;提高代码效率&#xff1b;…

云原生的新思考,为什么容器已经无处不在了

4月24日&#xff0c;中国信息通信研究院主办的首届云原生产业大会在北京举行&#xff0c;在《云原生数字引领未来》的主题演讲中&#xff0c;阿里云容器服务总监易立表示&#xff1a;“云原生不但可以很好的支持互联网应用&#xff0c;也在深刻影响着新的计算架构、新的智能数据…

走近科学,探究阿里闲鱼团队通过数据提升Flutter体验的真相

背景 闲鱼客户端的flutter页面已经服务上亿级用户&#xff0c;这个时候Flutter页面的用户体验尤其重要&#xff0c;完善Flutter性能稳定性监控体系&#xff0c;可以及早发现线上性能问题&#xff0c;也可以作为用户体验提升的衡量标准。那么Flutter的性能到底如何&#xff1f;…

阿里3篇技术论文入选国际顶级会议FAST2020,全球第一!

2月26日&#xff0c;存储行业顶级国际会议FAST2020&#xff08;18th USENIX Conference on File and Storage Technologies&#xff09;在美国圣克拉拉举行&#xff0c;大会公开论文名单显示&#xff0c;阿里巴巴3篇第一作者论文入选&#xff0c;是全球入选数最多的企业。 FAS…

oracle11g linux 日期格式设置

下面的过程把oracle 的日期格式设置成 yyyy-mm-dd hh24:mi:ss(1) 使用 oracle 用户登录(2) 在.bash_profile里增加以下两条环境变量export NLS_LANGamerican_america.ZHS16GBK export NLS_DATE_FORMAT"YYYY-MM-DD HH24:MI:SS" (3) 执行一下"source .bash_profil…

如何通过http从linux下载文件,linux – 我可以通过http验证大量文件下载吗?

在服务器端,您可以使用dd和md5sum来校验文件的每个块&#xff1a;#!/bin/bashFILENAME"$1"FILESIZEstat --printf"%s" $FILENAMECHUNKSIZE536870912 # 512MBCHUNKNUM0while ! grep -q cannot skip hash.log 2> /dev/null ; dodd if$FILENAME bs$CHUNKSI…

一份还热乎的蚂蚁金服面经(已拿Offer)!附答案!!

本文来自我的知识星球的球友投稿&#xff0c;他在最近的校招中拿到了蚂蚁金服的实习生Offer&#xff0c;整体思路和面试题目由作者——泽林提供&#xff0c;部分答案由Hollis整理自知识星球《Hollis和他的朋友们》中「直面Java」板块。 经历了漫长一个月的等待&#xff0c;终于…

SFTP多用户权限 linux环境 一站式解决方案

文章目录一、方案11. 创建用户组2. 添加用户并设置为sftp组3. 设置用户密码4. 创建用户目录。并设置权限5. 修改SSH配置6. 在/etc/ssh/sshd_config添加用户组配置7. 最后重启SSH二、方案2(推荐)2.1. 创建用户组2.2. 添加用户并设置为sftp组2.3. 设置用户密码2.4. 创建用户目录。…

linux RssFile什么含义,什么是RSS

导读RSS 指 Really Simple Syndication(真正简易联合),RSS 的 元素可描述 RSS feed。RSS 元素RSS 的 元素可描述 RSS feed。请看下面这个 RSS 文档&#xff1a;<?xml version"1.0"encoding"UTF-8"?>菜鸟教程首页http://www.runoob.com免费编程教程…

linux CPU、内存、I/O、磁盘等监控统一解决方案

文章目录一、效果图二、软件安装配置2.1. nmon安装2.2. 权限赋予2.3. 脚本制作2.4. 脚本运行三、解析监控文件3.1. 监控文件下载3.2. 解析监控文件3.3. 监控指标总览补充内存计算方式需求背景: 性能测试过程中监控服务器健康(CPU、内存、I/O、磁盘)指标的状态 一、效果图 二、软…

数据科学家常见的5个SQL面试问题

作者 | Alexei Ledenev翻译 | 天道酬勤&#xff0c;责编 | Carol出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;在任何以数据为中心的工作中&#xff0c;对SQL有深刻的理解都是成功的关键&#xff0c;尽管这不是工作中最有趣的部分。事实上&#xff0c;除了…

java复制文件夹中的所有文件和文件夹到另一个文件夹中

package com.gblfy.ly.controller;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;public class FileUtils {/*** 复制整个文件夹内容* param oldPath String 原文件路径 如&#xff1a;c:/fqf* param ne…

c语言程序滞留,c语言有个可以使程序延时的语句是什么?

满意答案hsgfzdg99推荐于 2017.09.11采纳率&#xff1a;57% 等级&#xff1a;9已帮助&#xff1a;1169人Sleep函数:功 能: 执行挂起一段时间  用 法: unsigned sleep(unsigned seconds);  注意:  在VC中使用带上头文件#include  在VC中,Sleep中的第一个英文字符为大写的…