java课程设计图形界面加密助手完整版.docx

上传人:b****5 文档编号:11703153 上传时间:2023-03-30 格式:DOCX 页数:47 大小:477.92KB
下载 相关 举报
java课程设计图形界面加密助手完整版.docx_第1页
第1页 / 共47页
java课程设计图形界面加密助手完整版.docx_第2页
第2页 / 共47页
java课程设计图形界面加密助手完整版.docx_第3页
第3页 / 共47页
java课程设计图形界面加密助手完整版.docx_第4页
第4页 / 共47页
java课程设计图形界面加密助手完整版.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

java课程设计图形界面加密助手完整版.docx

《java课程设计图形界面加密助手完整版.docx》由会员分享,可在线阅读,更多相关《java课程设计图形界面加密助手完整版.docx(47页珍藏版)》请在冰豆网上搜索。

java课程设计图形界面加密助手完整版.docx

java课程设计图形界面加密助手完整版

 

《Java程序设计》课程设计报告

2015—2016学年第一学期

 

设计题目加密/解密助手

学生姓名郭月盟/董小慧

学号311309030118/311309030118

专业班级信管1301

指导教师姜国权

2015年12月28日

 

 

1、设计任务书

1.1题目与要求

董小慧,郭月盟计划编写一个信息加密解密助手,主要用来对信息采用常用的MD5,SHA,DES等加密算法进行加密。

1、建立助手登录界面,主要是为了增加使用权限。

2、建立主界面,分7个模块,主要包括:

MD5加密,SHA加密,DES加密,助手使用帮助,助手说明,退出助手等功能模块。

3、MD5模块:

展示GUI可视界面,实现对信息的MD5加密,由于MD5加密算法不可逆,不可实现信息解密的功能。

最后,将生成的信息文件通过text文档保存至本工程的根目录下,产生MD5加密信息.txt。

4、SHA模块:

展示GUI可视界面,实现对信息的SHA加密,同时SHA加密算法与MD5的机制雷同,不存在逆向解密,不存在信息解密,信息解密功能不可用。

最后,将生成的信息文件通过text文档保存至本工程的根目录下,产生SHA加密信息.txt。

5、DES模块:

展示GUI可视界面,实现对信息的DES加密,存在密钥机制的自动生成。

DEC的加密机制存在可逆,实现信息的解密功能。

最后,将生成的信息文件通过text文档保存至本工程的根目录下,产生DES加密信息.txt。

6、使用帮助:

以图片轮转的方式,显示使用方式的截图。

7、助手说明:

简单介绍助手

根据分工,董小慧工作是主界面及美工设计,郭月盟负责算法设计与实现

1.2本系统涉及的知识点

结构、数组、循环、函数、MD5算法、SHA算法、DES算法、GUI、SWING

2、功能设计

2.1算法设计

本系统需要实现的功能要求:

(1)利用JComboBoxJPasswordFieldJLabelJButton实现以下登录功能

图1助手登录主界面

(2)登录后进入主界面,通过按钮组件,调用各样的加密类进入信息加密功能。

如图2所示的菜单,该菜单中每个选项调用一个加密类

图2功能菜单

(3)根据所选菜单编写相应功能类:

1、MD5不可逆加密算法

2、SHA不可逆加密算法

3、DES可逆+密钥加密算法

2.2模块流程图

图3助手模块图

3、程序代码设计

1)登录助手

packagekeshe;

/**

*@authorGuoyuemeng

*@param主界面

*

*/

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.border.*;

publicclassloginextendsJFrame

{

privateJComboBoxnameJComboBox;

privateJPaneluserJPanel;

privateJLabelpictureJLabel,JLabel1,mimalabel1,mimalabel2,mimalabel3;

privateJButtonokJButton,cancelJButton;

privateJLabelnameJLabel,passwordJLabel,note,label;

privateJPasswordFieldpasswordJPasswordField;

privateJButtonJButton,JButton1,JButton2,JButton3,JButton4,JButton5;

privateStringname1;

privateStringpassword1;

privateStringuser;

privateJTextAreaonetext1,onetext2,twotext1,twotext2,threetext1,threetext2;

privateImageIconmyImageIcon;

publiclogin(){

createUserInterface();//调用创建用户界面方法

}

privatevoidcreateUserInterface(){

ContainercontentPane=getContentPane();

contentPane.setLayout(null);

userJPanel=newJPanel();

userJPanel.setBounds(35,120,300,96);

userJPanel.setBorder(BorderFactory.createEtchedBorder());//显示一圈边儿

userJPanel.setLayout(null);

contentPane.add(userJPanel);

nameJComboBox=newJComboBox();

nameJComboBox.setBounds(100,12,170,25);

nameJComboBox.addItem("admin");

nameJComboBox.addItem("aloie");

nameJComboBox.setSelectedIndex(0);

nameJComboBox.setEditable(true);

userJPanel.add(nameJComboBox);

pictureJLabel=newJLabel();

pictureJLabel.setBorder(BorderFactory.createEtchedBorder());

pictureJLabel.setBounds(36,0,300,118);

pictureJLabel.setIcon(newImageIcon("pic.jpg"));//注意将图片文件放在项目的根目录

contentPane.add(pictureJLabel);

nameJLabel=newJLabel("姓名:

");

nameJLabel.setBounds(20,12,80,25);

userJPanel.add(nameJLabel);

passwordJPasswordField=newJPasswordField();

passwordJPasswordField.setBounds(100,60,170,25);

userJPanel.add(passwordJPasswordField);

passwordJLabel=newJLabel("密码:

");

passwordJLabel.setBounds(20,60,80,25);

userJPanel.add(passwordJLabel);

note=newJLabel("密码与用户名相同");

note.setBounds(0,295,180,25);

//note.set

add(note);

okJButton=newJButton("登陆");

okJButton.setBounds(60,250,80,25);

contentPane.add(okJButton);

okJButton.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventevent){

okJButtonActionPerformed(event);

}

});

cancelJButton=newJButton("取消");

cancelJButton.setBounds(210,250,80,25);

contentPane.add(cancelJButton);

cancelJButton.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventevent){

System.exit(0);//退出登陆

}

});

setTitle("信息解密、解密助手");

setSize(380,350);

setLocation(400,200);//设置登录框的位置

setResizable(false);//将最大化按钮设置为不可用

}

privatevoidokJButtonActionPerformed(ActionEventevent){

//okJButton响应事件,检查用户名和密码的匹配

name1=nameJComboBox.getSelectedItem().toString();

if(name1.equals("admin")){

if(passwordJPasswordField.getText().equals("admin")){

showNewWindow();

setVisible(false);

}else{

JOptionPane.showMessageDialog(this,"密码错误,助手无法提供服务","警告:

密码错误!

",JOptionPane.ERROR_MESSAGE);

}

}

elseif(name1.equals("aloie")){

if(passwordJPasswordField.getText().equals("aloie")){

showNewWindow();

setVisible(false);

}

else{

JOptionPane.showMessageDialog(this,"密码错误,助手无法提供服务","警告:

密码错误!

",JOptionPane.ERROR_MESSAGE);

}

}

}

publicvoidshowNewWindow(){//此处生成新的窗口

JFramejf=newJFrame("信息加密/解密");

jf.setSize(900,600);

jf.setLocation(200,100);//设置主框的位置

jf.setVisible(true);

jf.setResizable(false);

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//特别注意,标签,按键要集中于一块,不要穿插

JButton=newJButton("MD5加密");

JButton.setBounds(40,90,130,25);

jf.add(JButton);

JButton.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventevent){

//JButtonActionPerformed(event);

jiamiOne();

}

});

JButton1=newJButton("SHA加密");

JButton1.setBounds(40,190,130,25);

jf.add(JButton1);

JButton1.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventevent){

//JButtonActionPerformed(event);

jiamiTwo();

}

});

JButton2=newJButton("DES加密");

JButton2.setBounds(40,290,130,25);

jf.add(JButton2);

JButton2.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventevent){

jiamiThree();

}

});

JButton3=newJButton("退出助手");

JButton3.setBounds(40,390,130,25);

jf.add(JButton3);

JButton3.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventevent){

System.exit(0);

}

});

JButton4=newJButton("使用帮助");

JButton4.setBounds(350,400,130,25);

jf.add(JButton4);

JButton4.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventevent){

newHelp();

}

});

JButton5=newJButton("助手说明");

JButton5.setBounds(600,400,130,25);

jf.add(JButton5);

JButton5.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventevent){

//JButtonActionPerformed(event);

jf.setEnabled(false);

showNote();

jf.setEnabled(true);

}

});

JLabel1=newJLabel();//设置中间的隔线

JLabel1.setBorder(BorderFactory.createEtchedBorder());

JLabel1.setBounds(200,0,2,600);

jf.add(JLabel1);

nameJLabel=newJLabel();

nameJLabel.setBounds(300,100,500,250);

nameJLabel.setBorder(BorderFactory.createEtchedBorder());

nameJLabel.setIcon(newImageIcon("zhu.jpg"));

jf.add(nameJLabel);

nameJLabel=newJLabel();//不知道为什么,必须重复一下才行

nameJLabel.setBounds(300,100,500,250);

nameJLabel.setBorder(BorderFactory.createEtchedBorder());

jf.add(nameJLabel);

}

publicvoidshowNote(){

JFramenote=newJFrame("助手说明");

note.setSize(500,200);

note.setLocation(500,180);//设置主框的位置

note.setVisible(true);

note.setResizable(false);

JLabellabel=newJLabel(""

+"    这个小助手是课程设计的一个小练习,通过小练习,加深对java的理解,和对"

+"java图形awt,swing,等各种类的使用。

但是由于只是一个小小的课程设计,该助手只"

+"能实现简单加密(自定秘钥),和信息的解密(提供秘钥而且是助手认可的加密方"

+"式),对java的学习还比较前,有各种的不足还要学习,以以上小助手献丑啦
"

+"----------------------------------------------------------------"

+"-----------------2015.12.28--编者:

郭月盟"

+"");

//JLabellabel=newJLabel("第一行
第二行");

label.setBounds(300,100,500,450);

label.setBorder(BorderFactory.createEtchedBorder());

note.add(label);

}

publicvoidshowHelp(){

JFramehelp=newJFrame("使用帮助");

help.setSize(500,400);

help.setLocation(500,100);//设置主框的位置

help.setVisible(true);

help.setResizable(false);

//JScrollPanejscrollpane=newJScrollPane(help);

nameJLabel=newJLabel("第一个");

nameJLabel.setBounds(300,100,500,250);

nameJLabel.setBorder(BorderFactory.createEtchedBorder());

help.add(nameJLabel);

nameJLabel=newJLabel();//不知道为什么,必须重复一下才行

nameJLabel.setBounds(300,100,500,250);

nameJLabel.setBorder(BorderFactory.createEtchedBorder());

help.add(nameJLabel);

}

publicvoidjiamiOne(){

newMD5();

}

publicvoidjiamiTwo(){

newSHA();

}

publicvoidjiamiThree(){

newgener();

}

publicstaticvoidmain(String[]args){

JFrame.setDefaultLookAndFeelDecorated(true);

loginmylogin=newlogin();

mylogin.setVisible(true);

mylogin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

2)MD5类

packagekeshe;

/**

*@authorGuoyuemeng

*@paramMD5加密算法

*@paramAlgorithm

*/

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjava.io.UnsupportedEncodingException;

importjava.security.MessageDigest;

importjava.security.NoSuchAlgorithmException;

importjava.io.File;

importjava.io.FileWriter;

importjava.io.BufferedWriter;

importjava.io.IOException;

 

//实现接口ActionListener

publicclassMD5implementsActionListener{

JFramejf;

JPaneljpanel;

JButtonjb1,jb2,jb3;

JTextAreajta=null;

JScrollPanejscrollPane;

publicMD5(){

jf=newJFrame("MD5");

ContainercontentPane=jf.getContentPane();

contentPane.setLayout(newBorderLayout());

jta=newJTextArea(10,15);

jta.setTabSize(4);

jta.setFont(newFont("标楷体",Font.BOLD,16));

jta.setLineWrap(true);//激活自动换行功能

jta.setWrapStyleWord(true);//激活断行不断字功能

jta.setBackground(Color.white);

jscrollPane=newJScrollPane(jta);

jpanel=newJPanel();

jpanel.setLayout(newGridLayout(1,3));

jb1=newJButton("MD5加密");

jb1.addActionListener(this);

jb2=newJButton("MD5解密");

jb2.addActionListener(this);

jb3=newJButton("保存");

jb3.addActionListener(this);

jpanel.add(jb1);

jpanel.add(jb2);

jpanel.add(jb3);

contentPane.add(jscrollPane,BorderLayout.CENTER);

contentPane.add(jpanel,BorderLayout.SOUTH);

jf.setSize(600,400);

jf.setLocation(400,200);

jf.setVisible(true);

}

//覆盖接口ActionListener的方法actionPerformed

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==jb1){

//jta.copy();

String[]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1