package com.siheal.wahson.task;import java.io.*;public class QuartzJobTest {/*** 秘钥(可以自己定义,也可随机生成)*/private static String key = "123456";/*** 文件file进行加密** @param url* @param fileUrl 文件路径* @param key 密码* @throws Exception*/public static void encrypt(String url, String fileUrl, String key) throws Exception {File file = new File(fileUrl);String path = file.getPath();if(!file.exists()){return;}int index = path.lastIndexOf("\\");String destFile = path.substring(0, index)+"\\"+"abc";File dest = new File(destFile);InputStream in = new FileInputStream(fileUrl);OutputStream out = new FileOutputStream(destFile);byte[] buffer = new byte[1024];int r;byte[] buffer2=new byte[1024];while (( r= in.read(buffer)) > 0) {for(int i=0;i<r;i++){byte b=buffer[i];buffer2[i]=b==255?0:++b;}out.write(buffer2, 0, r);out.flush();}in.close();out.close();file.delete();dest.renameTo(new File(fileUrl));appendMethodA(fileUrl, key);System.out.println("加密成功");}/**** @param fileName* @param content 密钥*/public static void appendMethodA(String fileName, String content) {try {// 打开一个随机访问文件流,按读写方式RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");// 文件长度,字节数long fileLength = randomFile.length();//将写文件指针移到文件尾。randomFile.seek(fileLength);randomFile.writeBytes(content);randomFile.close();} catch (IOException e) {e.printStackTrace();}}/*** 解密* @param fileUrl 源文件* @param tempUrl 临时文件* @param keyLength 秘钥长度* @return* @throws Exception*/public static String decrypt(String fileUrl, String tempUrl, int keyLength) throws Exception{File file = new File(fileUrl);if (!file.exists()) {return null;}File dest = new File(tempUrl);if (!dest.getParentFile().exists()) {dest.getParentFile().mkdirs();}InputStream is = new FileInputStream(fileUrl);OutputStream out = new FileOutputStream(tempUrl);byte[] buffer = new byte[1024];byte[] buffer2=new byte[1024];byte bMax=(byte)255;long size = file.length() - keyLength;int mod = (int) (size%1024);int div = (int) (size>>10);int count = mod==0?div:(div+1);int k = 1, r;while ((k <= count && ( r = is.read(buffer)) > 0)) {if(mod != 0 && k==count) {r = mod;}for(int i = 0;i < r;i++){byte b=buffer[i];buffer2[i]=b==0?bMax:--b;}out.write(buffer2, 0, r);k++;}out.close();is.close();return tempUrl;}/*** 判断文件是否加密* @param fileName* @return*/public static String readFileLastByte(String fileName, int keyLength) {File file = new File(fileName);if(!file.exists())return null;StringBuffer str = new StringBuffer();try {// 打开一个随机访问文件流,按读写方式RandomAccessFile randomFile = new RandomAccessFile(fileName, "r");// 文件长度,字节数long fileLength = randomFile.length();if(fileLength < keyLength){return null;}//将写文件指针移到文件尾。for(int i = keyLength ; i>=1 ; i--){randomFile.seek(fileLength-i);str.append((char)randomFile.read());}randomFile.close();return str.toString();} catch (IOException e) {e.printStackTrace();}return null;}public static void main(String[] args) throws Exception {encrypt("C:\\Users\\Documents\\WXWork\\1688856115382798\\Cache\\File\\2022-10\\12.09.txt", "C:\\Users\\Documents\\WXWork\\1688856115382798\\Cache\\File\\2022-10\\12.09.txt",key); //加密
//        if(key.equals(readFileLastByte("C:\\Users\\Documents\\WXWork\\1688856115382798\\Cache\\File\\2022-10\\12.10.txt",key.length()))){//            decrypt("C:\\Users\\Documents\\WXWork\\1688856115382798\\Cache\\File\\2022-10\\12.10.txt","C:\\Users\\Documents\\WXWork\\1688856115382798\\Cache\\File\\2022-10\\12.23.txt",key.length());
//        }//解密}
}

Java对文件进行加密解密操作相关推荐

  1. java开发文件夹加密解密程序_Java应用开发:文件加密解密

    本人记性不是很好,总是忘记些重要信息,特别是密码,很多时间登录都要试好几个密码才成功.所以想到了把 这些容易忘记的重要信息记录到一个文本文件上,再对其加密(不易忘记的密码).对文件的加密,自己写了个小 ...

  2. java 文件 加解密_Java实现文件的加密解密功能示例

    Java实现文件的加密解密功能示例 发布时间:2020-10-05 22:05:15 来源:脚本之家 阅读:86 作者:FC WORLD!!! 本文实例讲述了Java实现文件的加密解密功能分享给大家供 ...

  3. java实现文件加密与解密_Java实现文件的加密解密功能示例

    本文实例讲述了Java实现文件的加密解密功能分享给大家供大家参考,具体如下: package com.copy.encrypt; import java.io.File; import java.io ...

  4. java对sha1的解密_Java实现文件的加密解密功能示例

    本文实例讲述了java实现文件的加密解密功能分享给大家供大家参考,具体如下: package com.copy.encrypt; import java.io.file; import java.io ...

  5. java 文件进行加密解密_java使用异或对文件进行加密解密

    本文实例为大家分享了java使用异或对文件进行加密解密的具体代码,供大家参考,具体内容如下 1.使用异或的方式加密文件的原理 一个数异或另一个数两次,结果一定是其本身 2.使用异或的原理加密文件 /* ...

  6. 用户密码的加密解密操作(前端加密,后端解密)

    用户密码的加密解密操作 作者是个小菜狗,行文过程基本都基于自己理解,没有深入查阅文献,如有错误,还请大神指出 背景: 公司做的是一个某某平台的系统,包括前台和后台,作者刚毕业,刚开始试用,带我的师傅让 ...

  7. java和c 的rsa加密算法_RSA算法签名技术Java与C++统一(加密解密结果一样)

    RSA算法签名技术Java与C++统一 (加密解密结果一样) 源代码下载地址:http://www.doczj.com/doc/64f44a94a0116c175f0e484d.html/produc ...

  8. C# Java间进行RSA加密解密交互(二)

    接着前面一篇文章C# Java间进行RSA加密解密交互,继续探讨这个问题. 在前面,虽然已经实现了C# Java间进行RSA加密解密交互,但是还是与项目中要求的有所出入.在项目中,客户端(Java)的 ...

  9. java AES文件流加密

    java AES文件流加密 文章转载自:https://www.cnblogs.com/gne-hwz/p/14736496.html java工具类-对称加密算法AES 加密文件流 工具类出自jdk ...

  10. Java简单实现DES加密解密算法

    Java简单实现DES加密解密算法 文章目录 Java简单实现DES加密解密算法 DES算法介绍 实现相关java类 代码实现 DES算法介绍 DEC加密算法属于对称加密,即利用指定的密钥,按照密码的 ...

最新文章

  1. 工作小记(三)----说说北京生活的乐趣
  2. LR中的吞吐量与响应时间
  3. c#用正则表达式获得指定开始和结束字符串中间的一段文本
  4. python爬虫入门实例-Python爬虫快速入门:基本结构简单实例
  5. PHP7.2环境中PHPExcel无法导出Excel
  6. 如何判断文本文件的编码格式?
  7. tc溜溜865手机投屏卡_溜溜tcgames老版本(电脑玩手机游戏)-溜溜TC Games32位/64位旧版本PC下载V2.0.0官网安卓真机投屏-西西软件下载...
  8. C/C++如何快速区分指针数组|数组指针|函数指针|指针函数
  9. 二次元风格Kratos-pjax主题 WordPress主题
  10. Python安装第三方库的3种方法
  11. 鸿蒙系统9月11号上市吗,9月11日鸿蒙系统2.0要搭载华为全家桶来了,你期待吗?...
  12. oracle typehandler,Mybatis实现自定义的类型转换器TypeHandler
  13. BZOJ3157/BZOJ3516 国王奇遇记(矩阵快速幂/数学)
  14. Java语言的八大优点
  15. c语言 fread读指定字节,fread函数 c语言中fread函数怎么用
  16. java计算机毕业设计中国民航酒店分销系统源码+数据库+系统+lw文档
  17. 计算机考研数学英语政治考啥,2016年考研数学一英语一政治计算机考研大纲原文合集.docx...
  18. oracel的安装和卸载
  19. 苹果cms大橙子和B站模板教程
  20. stm32 win7 64位虚拟串口驱动安装失败解决办法

热门文章

  1. Programming in lua 中文版
  2. python中as是什么意思_python中with python中with as 是什么意思刚入门求解释!!!
  3. android卡在开机画面,请教:用迅为4412开发板开机时卡在Android静止画面
  4. ubuntu添加桌面快捷方式图标
  5. SAMBA配置 “你可能没有权限访问网络资源”的问题解决方法
  6. 复旦大学数学学院 17 级本科生对每周一题的评价
  7. 计算机用户帐号 MAC地址怎么查,mac地址怎么查
  8. 页式存储中的逻辑地址与物理地址之间的解析过程
  9. 双偶幻方的c语言算法,任意阶幻方的c++实现----奇阶幻方、双偶幻方、单偶幻方。...
  10. 铜仁学院官网计算机二级报名,贵州铜仁学院2015年9月全国计算机等级考试报名通知...