主界面:
源代码:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class FileEncrypt extends JFrame {
JTextField text = new JTextField();
JButton btn = new JButton("选择文件");
public static void main(String[] args) {
FileEncrypt ui = new FileEncrypt();
ui.Init();
}
public void Init() {
//设置窗体属性
this.setTitle("文件加密");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(410, 300);
this.setLocation(400, 150);
this.setLayout(null);
//设置一个标签 一个输入框 三个按钮
JLabel lab = new JLabel("文件名:");
lab.setBounds(20, 40, 70, 30);
this.add(lab);
text.setBounds(70, 40, 200, 25);
this.add(text);
btn.setBounds(280, 40, 90, 25);
btn.setActionCommand("select");
this.add(btn);
JButton btn1 = new JButton("加密文件");
btn1.setBounds(40, 130, 90, 30);
btn1.setActionCommand("add");
this.add(btn1);
JButton btn2 = new JButton("解密文件");
btn2.setBounds(260, 130, 90, 30);
btn2.setActionCommand("delete");
this.add(btn2);
//为3个按钮添加监听器
Listen lis = new Listen();
btn.addActionListener(lis);
btn1.addActionListener(lis);
btn2.addActionListener(lis);
this.setVisible(true);
}
//定义内部类来实现ActionListener接口
class Listen implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//得到动作命令 和输入框信息
String commend = e.getActionCommand();
String filepath = text.getText();
JOptionPane dlg = new JOptionPane();
// 文件加密
if ("add".equals(commend)) {
// 判断文件是否存在
if (filepath.isEmpty()) {
dlg.showMessageDialog(null, "路径为空或不存在", "错误提示", 2);
} else {
try {
//定义输入流对象
FileInputStream fis = new FileInputStream(filepath);
BufferedInputStream bis = new BufferedInputStream(fis);
//定位起始位置
bis.mark(10);
//得到文件前10个字节
byte b[] = new byte[10];
bis.read(b);
String s1 = new String(b);
//判断前10个字节是否为"[加密文件]"
if ("[加密文件]".equals(s1)) {
dlg.showMessageDialog(null, "文件已为加密文件,无序加密",
"加密失败", 2);
} else {
//回到起始位置重新读取数据
bis.reset();
ArrayList<Byte> list = new ArrayList<Byte>();
int t = bis.read();
// 当读取完毕 t=-1
while (t != -1) {
list.add((byte) t);
t = bis.read();
}
bis.close();
//写入数据
FileOutputStream fos = new FileOutputStream(
filepath);
BufferedOutputStream bos = new BufferedOutputStream(
fos);
//在起始位置加上"[加密文件]" 用来判断是否为加密文件
String s2 = "[加密文件]";
bos.write(s2.getBytes());
//一个字节一个字节的写入 并把每个字节都加上1 用来加密
for (int i = 0; i < list.size(); i++) {
bos.write(list.get(i) + 1);
}
// 刷新并关闭文件
bos.flush();
bos.close();
dlg.showMessageDialog(null, "文件加密成功",
"加密成功", 2);
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
// 文件解密
else if ("delete".equals(commend)) {
if (filepath.isEmpty()) {
dlg.showMessageDialog(null, "路径为空或不存在", "错误提示", 2);
} else {
try {
//判断前10个字节是否为"[加密文件]"
FileInputStream fis = new FileInputStream(filepath);
BufferedInputStream bis = new BufferedInputStream(fis);
byte b[] = new byte[10];
bis.read(b);
String s1 = new String(b);
if ("[加密文件]".equals(s1)) {
ArrayList<Byte> list = new ArrayList<Byte>();
int t = bis.read();
//每个字节都减1
while (t != -1) {
list.add((byte) t);
t = bis.read();
}
FileOutputStream fos = new FileOutputStream(
filepath);
BufferedOutputStream bos = new BufferedOutputStream(
fos);
for (int i = 0; i < list.size(); i++) {
bos.write(list.get(i) - 1);
}
bos.flush();
bos.close();
dlg.showMessageDialog(null, "文件解密成功",
"解密成功", 2);
}
else{
dlg.showMessageDialog(null, "文件不为加密文件,无序解密",
"解密失败", 2);
}
bis.close();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
// 打开对话框
else if ("select".equals(commend)) {
JFileChooser chooser = new JFileChooser();
int t = chooser.showOpenDialog(null);
if (t == JFileChooser.APPROVE_OPTION) {
String path = chooser.getSelectedFile().getAbsolutePath();
text.setText(path);
}
}
}
}
}
- 大小: 37.5 KB
分享到:
相关推荐
【天威加密狗】文件加密及加密狗制作 文档详细描述了天威加密狗加密代码文件的过程
综上所述,"MD5多种算法加密工具"是一个结合了C#编程语言与MD5哈希算法的实用程序,旨在为用户提供便捷的数据加密和校验服务,并可能扩展到其他哈希算法,以及提供与之相关的开发指导和安全知识。
单文件制作工具(单文件封装制作助手)是一款十分优秀好用的单文件封装制作辅助工具。如果你需要一款好用的单文件制作软件,小编带来的这款单文件制作工具是非常不错的选择,使用后可以帮助用户更轻松便捷的进行单文件...
一个非常简单实用的加密程序和它的使用手册,可以对文件内容加密,还可以制作加密硬盘,使用起来很方便。加密时需要证书,可以到www.startca.com.cn去申请,也可以下载使用证书,加密磁盘序列号是HKCD9-0A2FC-EWEYM-975...
发行者证书测试工具 Cert2spc_exe:可以从CER文件生成SPC证书。 签名工具 SignTool_exe:对exe,dll等文件签名。 证书创建工具 Makecert_...文件加密解密工具zxfutl.exe:使用证书和私钥对文件进行加密解密,封包解包。
光盘加密大师,作为一个专业的光盘加密工具,致力于为用户提供强大的数据保护功能,确保敏感信息不被非法获取。这款软件的最新版本——V5.0.0,不仅加强了加密性能,还提供了友好的可视化界面,使得用户在制作加密...
本篇文章将深入探讨基于C#实现的文件加密小工具,它提供了对单个文件或批量文件进行加密和隐藏的功能,同时也支持解密和恢复显示。 首先,让我们了解文件加密的基本原理。文件加密是一种保护数据安全的重要手段,它...
在这个“文件内容加密工具(非对称RSA加密算法版)”程序中,用户首先会生成一对密钥,即公钥和私钥。公钥可以被分享给其他人,而私钥需要妥善保管,因为只有私钥才能解密用对应公钥加密的数据。程序会帮助用户保存这...
核心文件保护工具是一款非常专业的文件保护加密工具。这款工具支持多种格式的图片、视频文件进行加密,支持批量加密解密,加密过的文件在任何计算机上始终有效。 功能介绍 图片文件-支持jpg、bmp、png、gif、...
虽然没有提供具体的压缩包文件内容,但根据文件名称“3S6677 U盘制作加密盘工具”,我们可以假设其中包含了这个工具的安装程序或者可执行文件,以及可能的使用指南、帮助文档或者驱动程序。用户下载后,只需按照指示...
用户可以通过运行这个.exe文件来安装加密工具。而“说明.txt”很可能是包含软件使用指南或安装步骤的文本文件,帮助用户更好地理解和操作软件。 SanDisk Secure Access的使用流程通常包括以下几个步骤: 1. 安装:...
使用【狂牛视频加密工具】的过程简单高效,用户只需将待加密的视频文件拖放到软件界面,设置相关的加密参数,然后生成对应的机器码。加密后的视频文件可以在网络上传输,或者以安全的方式分发给目标用户。值得注意的...
文件夹加密工具,使用说明在包内; 宏杰软件开发有限公司是一家从事计算机软件开发、系统集成、信息化技术应用的高科技企业。长期致力于企事业单位的网络系统及软件开发,并为客户提供从管理咨询、软件开发、系统集成...
本工具是一款小巧自定义功能强大的PECMD/7zSFX单文件制作工具,简化单文件制作程序步骤,默认四步即可制作出一个单文件,可制作出强大功能的单文件程序。 附带的sfx模块很多,采用PECMD内核和7zSFX内核自解压模块...
Flash视频加密工具是一种专门用于保护SWF(Flash视频)文件安全的应用程序,它允许内容创作者对他们的Flash媒体内容进行加密,防止未经授权的访问、复制或非法分发。在当前数字时代,版权保护和内容安全变得至关重要...
此工具是可以用U盘当做加密狗。并且生成加密文件 以及使用的示例源码 C#
GiliSoft Secure Disc Creator是一款专业的制作加密并记录加密光盘的工具,可以制作650M/700M CD,4.7G DVD加密映像文件。制作ISO加密映像文件:按添加文件按钮添加要加密的文件到安全区,点击制作映像文件,...
在制作ET199加密狗的底层虚拟文件时,我们需要使用特定的工具和编程语言。"C51"通常指的是51系列单片机的C编译器,这可能是用于编写加密狗内核程序的工具。开发者需要用C51编写控制加密狗读写操作的固件,并将其烧录...
在这个场景下,我们讨论的"gpk制作工具"很可能是一个用于创建GPK文件的实用程序。 `AqxUtils.dll`:这是一个动态链接库(DLL)文件,是应用程序运行时需要的组件。在gpk制作工具中,它可能包含了各种辅助功能,如...