我们的文件在计算机中都是以二进制的形式存储,而Java中IO流(字节流和字符流)可以实现对底层文件的读取,故利用Java的IO流进行文件拷贝时,可以对底层二进制进行加密操作,随后通过解密操可以还原。

例如,我们对桌面上的一段avi视频文件进行加密操作,首先利用字节流对avi文件进行读取(read()函数),该函数每次读取一个字节(8位),并返回0~255内的字节值,我们通过将每次读取的字节值加1进行加密操作,这样拷贝的文件就实现了加密。随后我们可以对加密后的文件进行减1,实现解密操作。

package demo;import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class IOSercet {public static void main(String[] args) throws IOException {decrypt("C:\\Users\\Dell\\Desktop\\原视频.avi");}//加密public static void secret(String str) throws IOException{BufferedInputStream bis = new BufferedInputStream(new FileInputStream(str));String [] s=str.split("\\.");BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Dell\\Desktop\\marden1."+s[1]));int n;long a=System.currentTimeMillis();while((n=bis.read())!=-1){bos.write(n+1);}long b=System.currentTimeMillis();bis.close();bos.close();System.out.println("加密拷贝成功!");System.out.println("加密用时:"+(b-a)+"ms");}//解密public static void decrypt(String str) throws IOException{BufferedInputStream bis = new BufferedInputStream(new FileInputStream(str));String [] s=str.split("\\.");BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Dell\\Desktop\\marden2."+s[1]));int n;long a=System.currentTimeMillis();while((n=bis.read())!=-1){bos.write(n-1);}long b=System.currentTimeMillis();bis.close();bos.close();System.out.println("解密拷贝成功!");System.out.println("解密用时:"+(b-a)+"ms");}
}

通过上述加密算法,我们得到加密后的视频文件marden1.avi。并且用potplayer播放器进行测试,效果图下图所示:

通过上述解密算法,我们得到解密后的视频marden2.avi。并且用potplayer播放器进行测试,最后运行结果完美。

即通过复制视频文件时,将获取的每个字节的数据进行加1和减1操作后,可以实现加密和解密。

同理,我们利用上述加密解密算法进行文本的测试。加密后的文本显示为乱码,效果图下图所示:

通过解密算法得到解密后的文本,效果如下图所示:

哈哈哈~~~利用上面的小技巧可以对百度云中的文件进行自定义加密~~再也不怕百度云爸爸把我的宝贵资源和谐掉了~~

利用java程序实现文件加密相关推荐

  1. 利用java进行zip文件解压缩

    利用java进行zip文件解压缩 本文利用Java的zip包中的ZipFile和ZipEntry两个类,获取到压缩包中的所有文件,并将压缩文件通过InputStream写入一个byte数组,再将该by ...

  2. java qq 传送文件_如何利用Java实现QQ文件传输功能.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspJava 如何利用Java实现QQ文件传输功能.pdf2页 本文 ...

  3. Java基础篇之利用IO流给文件加密、解密

    目标:给文件加密.解密(最基础版) 注意: a.加密过程:先读取整个目标文件,然后将目标文件写入一个新的文件中,在写入的过程中,每隔几个字符插入一个加密符号(随意定),此时这个新的文件就是加密文件 b ...

  4. 【密码学】Java课设-文件加密系统(适用于任何文件)

    Java实现文件加密解密 前言 一.密码学入门 1.对称加密 2.非对称加密 二.程序代码 1.welcome类(欢迎界面) 2.Log类(登录界面) 3.Register类(注册界面) 4.Inde ...

  5. Java实现批量文件加密

    一.题目要求: 用Java实现一个文件批量加密解密工具,实现以下功能: 1. 要有图形界面. 2. 能够通过界面设置一个目录,软件对该目录下的所有文件进行加密或解密(使用对称或非对称加密算法). 加密 ...

  6. 利用JAVA程序批量导入csv数据到MySQL数据库

    正在学习利用R进行统计学相关知识的实验,实验数据计划采用北京市环境监测数据,此数据可以在这个网址"https://quotsoft.net/air/"中下载,目前可提供2013年1 ...

  7. 基于JAVA的SM4文件加密解密,可以直接使用

    @[JAVA]SM4文件加密以及解密 SM4文件加密 本加密只需要填写一个 key就可以了,需要导入两个包,一个是bcprov-jdk15on-1.59.jar 另一个是hutool-all-4.6. ...

  8. java简单的文件加密

    文件加密是建立在文件复制的基础之上,说白了就是将一个文件复制过去,期间加上一些干扰信息,致使文件发生改变,来达到文件加密的效果. 文件解密是根据文件相应的加密,来进行解密. 本次加密是比较简层次的加密 ...

  9. 毕业设计-基于微信小程序的文件加密系统

    目录 前言 课题背景与简介 实现设计思路 一.文件加密系统现状 二.系统总体设计 三.系统流程设计 四.系统实现 五.总结 实现效果样例 更多帮助 前言

  10. excel中用java语言_利用 JAVA 操作 EXCEL 文件

    Java Excel 是一开放源码项目,通过它 Java 开发人员可以读取 Excel 文件的内容.创建新的 Excel 文件.更新已经存在的 Excel 文件.使用该 API 非 Windows 操 ...

最新文章

  1. Android EditView 软键盘把布局顶上去的处理方法
  2. ETC公布2018线路图,试图追赶ETH
  3. Sent non-empty 'Sec-WebSocket-Protocol' header but no response was received
  4. php微信支付分取消订单,微信支付PHP开发教程五关闭订单
  5. 创建简单的Flex组件
  6. SQL中的CONSTRAINT用法总结
  7. 中文宾州树库标记含义
  8. matlab 指定函数拟合,matlab中曲线拟合问题---使用指定函数进行曲线拟合
  9. promise A+ 原理
  10. python技术分享_分享几个python的使用技巧
  11. python获取linux本机IP
  12. cookie的封装删除修改
  13. Node.js开发框架Express4.x
  14. KL散度-Entropy-JS散度-W距离
  15. orange软件使用
  16. C#解压zip和rar文件
  17. CRC 8/16/32通用算法(C 语言版)
  18. 台式计算机怎么把声音输出,台式电脑音频管理器的设置教程 台式电脑音响没声音怎么弄...
  19. C语言等级考试作业,等级考试C语言基础测试题
  20. LQR,iLQR,DDP控制论经典算法(MBRL基础知识)

热门文章

  1. 高分三号卫星(GF-3)简介
  2. JAVEWEB 过滤器Filter的实现
  3. 深度学习怎么入门?零基础快速入门深度学习
  4. MarkDown 下载-安装
  5. nb信号和4g信号_nb信号和4g信号_NB-IoT的网络如何组成,以及数据如何传输?
  6. linux微信电脑版登录不了,默认Windows与Deepin系统下的微信电脑版目录
  7. IDEA打包jar包并运行
  8. python灰色预测模型_GM(1,n)(灰色模型代码)
  9. oracle数据库报01033,oracle数据库报ORA-01033错误
  10. Android安全测试框架Drozer(安装篇)