文件解密 [Java]
如何完成对加密后文件的解密操作
- 我们上面是使用了给读入的数据进行一个^5运算之后然后写出的方式对文件进行了加密操作,这个时候如果我们要使用加密后文件的解密, 这个时候我们就要给加密后的文件的数据再进行一个^5的运算 ,然后再将数据写出,然后就完成了解密
这里我们来理一理流程:
- 首先是加密
- 读入一个未加密文件
- 对读入文件数据进行^5 (也就是进行加密)
- 然后写出数据
- 然后是解密
读入一个加密后的文件
对读入的文件数据进行^5(也就是进行解密)
为什么这个时候对加密后文件数据进行^5又是进行了解密?
因为我们之前在只使用两个变量完成变量数据内容交换时学过,如果一个x异或y之后再异或一个y就是x,如果一个x异或y之后再异或一个x就是y,这个时候我们给原本的数据进行一次异或5之后就是进行了加密,然后再进行一次^5之后就是完成了解码
然后写出数据
这里我们给出加密程序:
- 这里我们对文件的加密的思想就是对文件中每个字节的数据进行编码之后^(异或)5,然后就完成了对文件的一个简单加密
package IO流.fileinputstream;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class Demo6 {public static void main(String[] args) throws IOException{/*创建结点流对象 ,指明源文件和加密后文件的存储地址*/FileInputStream fis = new FileInputStream("abc.png");FileOutputStream fos = new FileOutputStream("abcSecret.png");/*创建一个缓冲byte[]*/byte [] bytes = new byte[20];/*创建一个临时变量用来接收read()方法的返回值*/int len = 0;/*数据的读入和写出操作,每次读入数据之后,写出数据之前,我们要将数据编码进行一个^5,进行数据加密*/while((len = fis.read(bytes)) != -1){for (int i = 0; i < len ; i++){bytes[i] = (byte)(bytes[8] ^ 5);}fos.write(bytes,0,len);}/*流资源的关闭*/fos.close();fis.close();}
}
- 上面的abc.png是一个本项目之下的图片
- 这个时候我们运行这个程序之后就会在本项目之下产生一个加密后的文件,这个文件名为abcSecret.png的加密文件
- 这个加密文件和我们的原文件的大小是完全相同的,但是我们的加密文件是不可以打开的
这里我们给出解密的程序:
package IO流.fileinputstream;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class Demo7 {public static void main(String[] args) throws IOException{/*创建结点流对象 ,指明源文件和加密后文件的存储地址*/FileInputStream fis = new FileInputStream("abcSecret.png");FileOutputStream fos = new FileOutputStream("abc5.png");/*创建一个缓冲byte[]*/byte [] bytes = new byte[20];/*创建一个临时变量用来接收read()方法的返回值*/int len = 0;/*数据的读入和写出操作,每次读入数据之后,写出数据之前,我们要将数据编码进行一个^5,进行数据加密*/while((len = fis.read(bytes)) != -1){for (int i = 0; i < len ; i++){bytes[i] = (byte)(bytes[i] ^ 5);}fos.write(bytes,0,len);}/*流资源的关闭*/fos.close();fis.close();}
}
- 这个时候我们运行一次程序之后将我们的加密后的文件作为输入,然后得到一个输出文件,这个时候我们就可以发现这个输出文件是正常文件
文件解密 [Java]相关推荐
- python能解密java的_实现Java加密,Python解密的RSA非对称加密算法功能
摘要 因为最近业务需要使用到openssl的rsa非对称加密算法,研究了下它的使用方式,但是特殊在于前端分IOS和android两端,所以前端部门要求使用java给他们做一个加密工具包,但是因为服务端 ...
- 安卓Native逆向之MOO音乐解密( .bkcflac,bkcmp3文件解密)
安卓Native逆向之MOO\QQ音乐解密( .bkcflac,bkcmp3文件解密) 1.背景 2.Java层逆向 3.Native层逆向 4.Java实现 1.背景 本文写于2021年1月5日,解 ...
- java xml 反射_Java 读取XML文件以及Java 的反射机制实现
Java 读取XML文件以及Java 的反射机制实现 代码部分 import java.io.File; import javax.xml.parsers.DocumentBuilder; impor ...
- java 读取文件内容 实例_Java 实例 – 读取文件内容 - Java 基础教程
Java 实例 以下实例演示了使用 readLine() 方法来读取文件 test.log 内容,其中 test.log 文件内容为: 本站 www.runoob.com java 代码如下: Mai ...
- java源文件编译成jar_从源文件和JAR文件构建Java代码模型
java源文件编译成jar 最近,我花了一些时间来研究有效java ,该方法正在GitHub上达到300星(可以免费帮助实现目标:D). Effectivejava是在您的Java代码上运行查询的工具 ...
- 从源文件和JAR文件构建Java代码模型
最近,我花了一些时间来研究有效java ,该方法正在GitHub上达到300星(随时帮助实现目标:D). Effectivejava是在您的Java代码上运行查询的工具. 它基于我参与的另一个项目ja ...
- IOS上传文件给java服务器,返回报错unacceptable context-type:text/plain
IOS上传文件给java服务器,返回报错unacceptable context-type:text/plain response返回类型不对 @RequestMapping(value = &quo ...
- java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...
如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径 我有一个包含2个包的项目: ListStopWords.txt ListStopWords.txt 在包(2)中我有 ...
- java.policy无法修改_如何配置Policy文件进行Java安全策略的设置
中国人最喜欢访问的网站 只要注册ofo就送你10块钱,还等什么,快来注册吧 Java语言具有完善的安全框架,从编程语言.编译器.解释程序到Java虚拟机,都能确保Java系统不被恶意的代码或敌对的编译 ...
- java解压服务器文件夹,java获取远程服务器上的文件夹
java获取远程服务器上的文件夹 内容精选 换一换 安装X722板载网卡驱动软件包,使裸金属服务器支持在v5服务器上下发.其他类型服务器可跳过此步骤.本文以Windows Server 2016为例, ...
最新文章
- 将NetBIOS名称解析为IP地址的常用方法
- maven_结合使用嵌入式Tomcat和Maven tomcat插件
- ios开发时,在Xcode中添加多个targets进行版本控制
- java 基础知识部分提炼
- $.each()与$(selector).each()
- 2017最新顺口溜出炉(超级经典)!
- leaflet-webpack 入门开发系列三地图分屏对比(附源码下载)
- python中二进制表示_Python中的二进制搜索:直观介绍
- python cannot import name main_virtualenv: cannot import name 'main'
- windows执行命令来运行loadrunner录制好的脚本(收藏)
- 层次状态机编程三:状态机设计模式
- matlab中矩阵运算lu,matlab中矩阵lu分解
- IE8兼容html5视频播放
- 赛程表 (递归调用, 非递归调用)
- 精品软件 推荐 电子书转换器 EPUB to PDF Converter
- 原生JS实现飞机大战游戏 超详细解析 快来做一个自己玩吧
- Debian10.12安装oracle11g(亲测有效)
- 如何判断当前浏览器是IE11
- CSS实现背景图片高斯模糊效果
- Joplin利用TeraCLOUD进行WebDAV同步完美替代坚果云同步
热门文章
- MAC下邮件客户端操作——解决无法登陆GMail IMAP服务器
- your system does not seem to be set up to build kernel modules
- linux操作系统课程内容,《linux操作系统及应用》课程标准
- 一个草根码农的拼搏历程
- 关于arcgis server 发布地图的时候报错“Packaging succeeded but publishing failed“问题解决
- 35岁学太极系列(1)-缘起功夫梦
- css media怎么用,css中@media属性如何使用
- 项目经理和产品经理的职责
- Apache web服务器 的下载安装
- 自制StartUp宏病毒专杀小工具