`
VIP庚
  • 浏览: 223353 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

简单的文件加密工具制作

 
阅读更多
主界面:




源代码:

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
分享到:
评论
1 楼 DJ小王 2014-11-30  
  

相关推荐

    【天威加密狗】文件加密及加密狗制作

    【天威加密狗】文件加密及加密狗制作 文档详细描述了天威加密狗加密代码文件的过程

    MD5多种算法加密工具

    综上所述,"MD5多种算法加密工具"是一个结合了C#编程语言与MD5哈希算法的实用程序,旨在为用户提供便捷的数据加密和校验服务,并可能扩展到其他哈希算法,以及提供与之相关的开发指导和安全知识。

    单文件制作工具v7.0一款小巧强大的单文件制作工具.rar

    单文件制作工具(单文件封装制作助手)是一款十分优秀好用的单文件封装制作辅助工具。如果你需要一款好用的单文件制作软件,小编带来的这款单文件制作工具是非常不错的选择,使用后可以帮助用户更轻松便捷的进行单文件...

    一个简单实用的加密工具

    一个非常简单实用的加密程序和它的使用手册,可以对文件内容加密,还可以制作加密硬盘,使用起来很方便。加密时需要证书,可以到www.startca.com.cn去申请,也可以下载使用证书,加密磁盘序列号是HKCD9-0A2FC-EWEYM-975...

    数字证书制作签名加密工具包

    发行者证书测试工具 Cert2spc_exe:可以从CER文件生成SPC证书。 签名工具 SignTool_exe:对exe,dll等文件签名。 证书创建工具 Makecert_...文件加密解密工具zxfutl.exe:使用证书和私钥对文件进行加密解密,封包解包。

    光盘加密大师-加密光盘制作工具

    光盘加密大师,作为一个专业的光盘加密工具,致力于为用户提供强大的数据保护功能,确保敏感信息不被非法获取。这款软件的最新版本——V5.0.0,不仅加强了加密性能,还提供了友好的可视化界面,使得用户在制作加密...

    C#编写的文件加密小工具

    本篇文章将深入探讨基于C#实现的文件加密小工具,它提供了对单个文件或批量文件进行加密和隐藏的功能,同时也支持解密和恢复显示。 首先,让我们了解文件加密的基本原理。文件加密是一种保护数据安全的重要手段,它...

    文件内容加密工具(非对称RSA加密算法版)

    在这个“文件内容加密工具(非对称RSA加密算法版)”程序中,用户首先会生成一对密钥,即公钥和私钥。公钥可以被分享给其他人,而私钥需要妥善保管,因为只有私钥才能解密用对应公钥加密的数据。程序会帮助用户保存这...

    核心文件保护工具(文件加密)支持批量加密v4.8.1中文安装版

    核心文件保护工具是一款非常专业的文件保护加密工具。这款工具支持多种格式的图片、视频文件进行加密,支持批量加密解密,加密过的文件在任何计算机上始终有效。 功能介绍 图片文件-支持jpg、bmp、png、gif、...

    金士顿3S6677 U盘制作加密盘工具

    虽然没有提供具体的压缩包文件内容,但根据文件名称“3S6677 U盘制作加密盘工具”,我们可以假设其中包含了这个工具的安装程序或者可执行文件,以及可能的使用指南、帮助文档或者驱动程序。用户下载后,只需按照指示...

    闪迪U盘加密工具SanDiskSecureAccessV2_win

    用户可以通过运行这个.exe文件来安装加密工具。而“说明.txt”很可能是包含软件使用指南或安装步骤的文本文件,帮助用户更好地理解和操作软件。 SanDisk Secure Access的使用流程通常包括以下几个步骤: 1. 安装:...

    狂牛视频加密工具

    使用【狂牛视频加密工具】的过程简单高效,用户只需将待加密的视频文件拖放到软件界面,设置相关的加密参数,然后生成对应的机器码。加密后的视频文件可以在网络上传输,或者以安全的方式分发给目标用户。值得注意的...

    windows文件加密工具

    文件夹加密工具,使用说明在包内; 宏杰软件开发有限公司是一家从事计算机软件开发、系统集成、信息化技术应用的高科技企业。长期致力于企事业单位的网络系统及软件开发,并为客户提供从管理咨询、软件开发、系统集成...

    单文件制作工具 7.0.2.3851-x86-x64

    本工具是一款小巧自定义功能强大的PECMD/7zSFX单文件制作工具,简化单文件制作程序步骤,默认四步即可制作出一个单文件,可制作出强大功能的单文件程序。 附带的sfx模块很多,采用PECMD内核和7zSFX内核自解压模块...

    Flash视频加密工具

    Flash视频加密工具是一种专门用于保护SWF(Flash视频)文件安全的应用程序,它允许内容创作者对他们的Flash媒体内容进行加密,防止未经授权的访问、复制或非法分发。在当前数字时代,版权保护和内容安全变得至关重要...

    U盘制作加密狗源码+使用例子.rar_.net_U盘制作加密锁_u盘加密狗制作_加密狗_软件狗代码

    此工具是可以用U盘当做加密狗。并且生成加密文件 以及使用的示例源码 C#

    加密光盘制作刻录工具v6.4中文注册版.rar

    GiliSoft Secure Disc Creator是一款专业的制作加密并记录加密光盘的工具,可以制作650M/700M CD,4.7G DVD加密映像文件。制作ISO加密映像文件:按添加文件按钮添加要加密的文件到安全区,点击制作映像文件,...

    ET199加密狗etfs底层虚拟文件制作教程_加密狗_et199加密狗_et199_底层文件etfs_ET199虚拟

    在制作ET199加密狗的底层虚拟文件时,我们需要使用特定的工具和编程语言。"C51"通常指的是51系列单片机的C编译器,这可能是用于编写加密狗内核程序的工具。开发者需要用C51编写控制加密狗读写操作的固件,并将其烧录...

    gpk制作工具

    在这个场景下,我们讨论的"gpk制作工具"很可能是一个用于创建GPK文件的实用程序。 `AqxUtils.dll`:这是一个动态链接库(DLL)文件,是应用程序运行时需要的组件。在gpk制作工具中,它可能包含了各种辅助功能,如...

Global site tag (gtag.js) - Google Analytics