资源简介
Java实现三重DES文件加密,有界面,并可实现任意文件的加密。里面是一个源程序,以及它生成的类文件和两个测试文件。在cmd窗口中运行java des.FileEncrypter即可出现加密界面,这是三重DES加密,密钥可自行输入,也可随即生成。
代码片段和文件信息
package des;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
/**
文件名:FileEncrypter.java
功能:实现任意文件的加密
加密方法:DES加密
加密过程:对选中的文件加密后在同文件夹下生成一个增加了“.tdes“ 扩展名的加密文件解密过程:对选中的加密文件(必须有“.tdes“扩展名)进行解密 */
public class FileEncrypter extends Jframe{
public static final int WIDTH = 600;
public static final int HEIGHT = 200;
public static void main(String args[])
{ FileEncrypter fe = new FileEncrypter(); fe.show(); }
FileEncrypter(){
this.setSize(WIDTHHEIGHT);
this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
this.setResizable(false);
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screenSize = tk.getScreenSize();
this.setLocation((screenSize.width - WIDTH)/2 (screenSize.height - HEIGHT)/2);
this.settitle(“文件加密器“);
Container c = this.getContentPane();
c.setLayout( new FlowLayout());
final FilePanel fp = new FilePanel(“ 文件选择“);
c.add(fp);
final KeyPanel pp = new KeyPanel(“ 密码 “);
c.add(pp);
JButton jbE = new JButton(“加密“);
c.add(jbE);
jbE.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
File file = new File(fp.getFileName());
if (file.exists())
encrypt(file.getAbsoluteFile()pp.getKey());
else
JOptionPane.showMessageDialog(
null“请选择文件!““提示“JOptionPane.OK_OPTION);
}
});
JButton jbD = new JButton(“解密“);
c.add(jbD);
jbD.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
File file = new File(fp.getFileName());
if (file.exists())
decrypt(file.getAbsoluteFile()pp.getKey());
else
JOptionPane.showMessageDialog(null“请选择文件!““提示“JOptionPane.OK_OPTION);
}
});
}
/**
加密函数
输入:
要加密的文件,密码(由0-F组成,共48个字符,表示3个8位的密码)如:
AD67EA2F3BE6E5ADD368DFE03120B5DF92A8FD8FEC2F0746
其中:
AD67EA2F3BE6E5AD DES密码一
D368DFE03120B5DF DES密码二
92A8FD8FEC2F0746 DES密码三
输出:
对输入的文件加密后,保存到同一文件夹下增加了“.tdes“扩展名的文件中。
*/
private void encrypt(File fileInString sKey){
try{
if(sKey.length() == 48){
byte[] bytK1 = getKeyByStr(sKey.substring(016));
byte[] bytK2 = getKeyByStr(sKey.substring(1632));
byte[] bytK3 = getKeyByStr(sKey.substring(3248));
FileInputStream fis = new FileInputStream(fileIn);
byte[] bytIn = new byte[(int)fileIn.length()];
for(int i = 0;i< fileIn.length();i++){
bytIn[i] = (byte)fis.read();
}
//加密
byte[] bytOut = encryptByDES(decryptByDES(encryptByDES(bytInbytK1)bytK2)bytK3);
String fileOut = fileIn.getPath() + “.tdes“;
FileOutputStream fos = new FileOutputStream(fileOut);
for(int i = 0;i< bytOut.length;i++){
fos.write((int)bytOut[i]);
}
fos.close();
JOptionPane.showMessageDialog(this“加密成功!““提示“JOptionPane.INFORMATION_MESSAGE);
System.out.println(“加密成功!“);
}else
JOptionPane.showMessageDialog(
this“密码长度必须等于48!““错误信息“JOptionPane.ERROR_MESSAGE);
}catch(Exception e){
e.printStackTrace();
}
}
/**
解密函数
输入:
要解密的文件,密码(由0-F组成,共48个字符,表示3个8位的密码)如:
AD67EA2F3B
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 302592 2010-11-20 20:17 三重DES文件加密\cmd.exe
文件 1193 2012-11-11 13:55 三重DES文件加密\des\FileEncrypter$1.class
文件 1193 2012-11-11 13:55 三重DES文件加密\des\FileEncrypter$2.class
文件 5782 2012-11-11 13:55 三重DES文件加密\des\FileEncrypter.class
文件 1096 2012-11-11 13:55 三重DES文件加密\des\FilePanel$clickAction.class
文件 942 2012-11-11 13:55 三重DES文件加密\des\FilePanel.class
文件 2066 2012-11-11 13:55 三重DES文件加密\des\KeyPanel$clickAction.class
文件 867 2012-11-11 13:55 三重DES文件加密\des\KeyPanel.class
文件 9774 2012-11-12 09:21 三重DES文件加密\FileEncrypter.java
文件 208896 2012-10-23 09:59 三重DES文件加密\独立学院.doc
文件 208920 2012-12-21 18:05 三重DES文件加密\独立学院.doc.tdes
文件 7239 2012-11-11 13:45 三重DES文件加密\独立学院.txt
文件 133 2012-12-21 18:06 三重DES文件加密\说明.txt
目录 0 2012-11-04 16:47 三重DES文件加密\des
目录 0 2012-12-21 17:59 三重DES文件加密
----------- --------- ---------- ----- ----
750693 15
相关资源
- Pro JPA2中文版:精通Java持久化API 中文
- jpbc2.0绿色版
- java 图书管理系统 界面漂亮 绝对好用
- Java-jdk-1.7.0_80
- 企业内部通信系统swing+javaDB
- 《Java入门经典》.(李伟张金辉).[
- 机器学习
- 基于二维码的防伪项目java开发
- java解析lrc
- 基于数据库的自动化生成工具,自动
- java OA项目源代码
- 基于SSM的服装设计作品在线展销系统
- Java EE企业级应用开发教程Spring+Sprin
- JavaEE企业级应用SSM开发教程(PDF版)
- Undocumented Secrets of MATLAB-Java Programmin
- java8 中文文档
- 34个经典javaweb项目jsp学习
- jdk8 linux 64位 RPM安装包 java8 RPMRPMRP
- qtjambi-4.5.2开发包+qtjambi-eclipse插件.z
- jdk-8u101-windows-x64.rar
- javaweb酒店管理系统143891
- java人事管理系统143886
- 《架构探险——从零开始写javaweb框架
- Java开发大全(提高卷)
- 最新EffectiveJava中文版第3版.zip
- java万年历课程设计
- Java Swing界面.完美设计通讯录..有需要
- EffectiveJava中文版原书第3版_REV.pdf
- 2018黑马java.txt
- 面试官系统精讲Java源码及大厂真题
评论
共有 条评论