3DES加解密工具说明文档

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3DES加/解密工具说明文档

武汉大学计算机学院

软件名称:

3DES加解密

软件功能:

用3DES算法对文件进行加密,使用密文链接模式及密文挪用技术

编程语言:

JAVA

编程环境:

Eclipse

发布方式:

已打包成jar文件

运行方式:

在安装jre的机子上可以直接双击jar文件运行,也可以用rar解压后用编译工具运行

使用说明:

在文件输入框输入文件路径,在密钥输入框输入16个字节的密钥,并点击密钥输入,然后点击加解密

模块说明:

类名:Myframe:

功能:实现界面,并完成密文反馈、短快处理及文件输入输出。

调用其他类:THREE

入口参数:通过界面输入文件路径及密钥

出口参数:无

类名:THREE

功能:实现3DES的3圈加密。

调用其他类:DES

入口参数:64位明文,128子密钥。

出口参数:64位密文

类名:DES

功能:实现3DES的一圈加密。

调用其他类:无

入口参数:64位明文,64位子密钥。

出口参数:64位密文

各个类的源码及详细说明:

Myframe 类:

: /*

* Created on 2004-11-13

*

* TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */

import java.awt.BorderLayout;

import java.awt.Button;

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.Panel;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.UnsupportedEncodingException;

import java.io.*;

import java.util.Date;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextArea;

import javax.swing.JTextField;

import mydes.DES;

import mydes.THREE;

/**

* @author TINA

*

* TODO To change the template for this generated type comment go to

* Window - Preferences - Java - Code Style - Code Templates

*/

public class myframe extends JFrame implements ActionListener

{

JButton Enc=new JButton("加密"); //加密按钮

JButton Dec=new JButton("解密"); //解密按钮

JTextArea taLog=new JTextArea(); //状态显示区

JLabel findfile=new JLabel("文件名:");

JButton key1=new JButton("密钥"); //密钥输入按钮

JTextField filepath=new JTextField(20);//文件路径输入部分

JTextField keytext=new JTextField(16);//密钥输入部分

byte[] cipherKey1=new byte[8]; //3DES的密钥K1

byte[] cipherKey2=new byte[8]; //3DES的密钥K2

int[][] subKeys1=new int[16][48]; //用于存放K1产生的子密钥

int[][] subKeys2=new int[16][48]; //用于存放K2产生的子密钥

byte[]

bZ={(byte)0x00,(byte)0x03,(byte)0x45,(byte)0xf3,(byte)0x33,(byte)0x21,(byte)0x75,(byte)0 xed};

//初始向量Z

byte key[]=new byte[16];

public static void main(String args[]) //生成界面

{

myframe frame=new myframe();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show();

}

public myframe() //界面的构造函数:生成按钮及输入框

{

setTitle("3DES ");

setSize(400,300);

JPanel input=new JPanel();

input.setLayout(new FlowLayout());

input.add(findfile);

input.add(filepath);

JPanel keyarea=new JPanel();

相关文档
最新文档