java课程设计图形界面加密助手完整版Word文档格式.docx
- 文档编号:8351556
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:47
- 大小:477.92KB
java课程设计图形界面加密助手完整版Word文档格式.docx
《java课程设计图形界面加密助手完整版Word文档格式.docx》由会员分享,可在线阅读,更多相关《java课程设计图形界面加密助手完整版Word文档格式.docx(47页珍藏版)》请在冰点文库上搜索。
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"
);
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("
)){
if(passwordJPasswordField.getText().equals("
)){
showNewWindow();
setVisible(false);
}else{
JOptionPane.showMessageDialog(this,"
密码错误,助手无法提供服务"
"
警告:
密码错误!
JOptionPane.ERROR_MESSAGE);
elseif(name1.equals("
if(passwordJPasswordField.getText().equals("
setVisible(false);
else{
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(){
//JButtonActionPerformed(event);
jiamiOne();
JButton1=newJButton("
SHA加密"
JButton1.setBounds(40,190,130,25);
jf.add(JButton1);
JButton1.addActionListener(newActionListener(){
jiamiTwo();
JButton2=newJButton("
DES加密"
JButton2.setBounds(40,290,130,25);
jf.add(JButton2);
JButton2.addActionListener(newActionListener(){
jiamiThree();
JButton3=newJButton("
退出助手"
JButton3.setBounds(40,390,130,25);
jf.add(JButton3);
JButton3.addActionListener(newActionListener(){
System.exit(0);
JButton4=newJButton("
使用帮助"
JButton4.setBounds(350,400,130,25);
jf.add(JButton4);
JButton4.addActionListener(newActionListener(){
newHelp();
JButton5=newJButton("
助手说明"
JButton5.setBounds(600,400,130,25);
jf.add(JButton5);
JButton5.addActionListener(newActionListener(){
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);
//不知道为什么,必须重复一下才行
publicvoidshowNote(){
JFramenote=newJFrame("
note.setSize(500,200);
note.setLocation(500,180);
note.setVisible(true);
note.setResizable(false);
JLabellabel=newJLabel("
<
html>
+"
&
nbsp;
这个小助手是课程设计的一个小练习,通过小练习,加深对java的理解,和对"
java图形awt,swing,等各种类的使用。
但是由于只是一个小小的课程设计,该助手只"
能实现简单加密(自定秘钥),和信息的解密(提供秘钥而且是助手认可的加密方"
式),对java的学习还比较前,有各种的不足还要学习,以以上小助手献丑啦<
br/>
----------------------------------------------------------------"
-----------------2015.12.28--编者:
郭月盟"
+"
/html>
//JLabellabel=newJLabel("
第一行<
br>
第二行<
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("
第一个"
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类
*@paramMD5加密算法
*@paramAlgorithm
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("
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);
//覆盖接口ActionListener的方法actionPerformed
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==jb1){
//jta.copy();
String[]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 图形界面 加密 助手 完整版