JAVA课程设计 文件加密解密

JAVA课程设计 文件加密解密
JAVA课程设计 文件加密解密

辽宁工业大学

JA V A程序设计课程设计(论文)题目:文件加密解密

院(系):软件学院

专业班级:软件工程

学号:

学生姓名:

指导教师:王彦华

教师职称:讲师

起止时间: 2012.6.18至2012.7.1

程序设计专题(报告)任务及评语

目录

第1章课程设计的目的与要求 (1)

1.1 课程设计目的 (1)

1.2 课程设计的实验环境 (1)

1.3 课程设计的预备知识 (1)

1.4 课程设计要求 (1)

第2章课程设计内容 (2)

2.1课程设计主要内容 (2)

2.2概要设计 (2)

2.2.1功能分析 (2)

2.2.2自定义类说明 (3)

2.3详细设计 (4)

2.3.1界面设计 (4)

2.4程序实现 (6)

2.4.1源码分析 (6)

2.4.2程序运行情况 (11)

2.4.3程序异常处理 (12)

第3章课程设计总结 (14)

参考资料15

第1章课程设计的目的与要求

1.1 课程设计目的

《JA V A程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JA V A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

1.2 课程设计的实验环境

硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。

1.3 课程设计的预备知识

熟悉JAVA语言及ECLIPSE开发工具。

1.4 课程设计要求

按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JA V A程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。

第2章课程设计内容

2.1课程设计主要内容

文件加密解密是科技飞速发展的中通信安全保密问题的最终结果,无论是当今还是未来计算机信息的保密问题显得越来越重要,无论是个人信息通信还是电子商务发展,都迫切需要保证Internet网上信息传输的安全,需要保证信息安全。其中,信息安全的核心是密码技术。在这个java编写的加密解密程序中,我这个设计实现了文本编辑器的基本功能有:打开文件,文件保存,文件另存为,文件加密,文件解密,及其查找。

2.2概要设计

2.2.1功能分析

根据系统的设计要求,设计的系统功能模块如图2-1所示。

图2-1 系统功能模块图

在做加密解密工具时首先确定的是界面的设计,此工具的主界面主要有三个标签:加密、解密、路径设置。加密标签界面里设计了四个panel工具,主要用于实现文件的加密功能,当向panel1或panel2拖入要加密的文件时它会弹出一个要输入密码的对话框,此界面的下方有一个textbox用于接收传进来的文件路径。在解密标签的窗口中的

界面基本上与加密标签里一样,但用于实现文件的解密功能。加密解密工具中的路径设置用于设置加密解密文件存放路径,这一块中要分两个区域:加密文件路径设置区(groupBox1)和解密文件路径设置区(groupBox2),在groupBox1标签中有两个单选按钮:radiobutton1设置的路径与原文件路径相同和radiobutton2设置了自定义的路径,一个文本框按钮(textbox3)一个选择button按钮。Button按钮是获得文件存储的路径,得到路径后就会把路径传给文本框按钮textBox3,textBox3的作用是将从button那得到的路径传加密标签是的textBox1。解密文件路径设置区的设计也和加密文件路径设置区一样,这里就不多说了。在设计时还要用到两个对话框,用于设置加密或解密密码。有两个文本框用于输入密码,一个确定按钮用来传送密码,一个取消按钮用来取消当前的操作。

2.2.2自定义类说明

1.类名:Cryp

作用:主类

继承的父类:没有

实现的接口:没有

2.类名:encryptt

作用:主类

继承的父类: Frame

实现的接口:ActionListener

3.类名:Key

作用:主类

继承的父类:没有

实现的接口:没有

4.类名:MessageDigestExample

作用:主类

继承的父类:没有

实现的接口:没有

表2.1 主类成员变量表

表2.2 主类方法表

2.3详细设计

2.3.1界面设计

1.加密解密界面设计

运行Microsoft Visual Studio环境,创建一个项目命名为:WindowsApplication1,

在项目里建一个表单Form1,把它作为文件加密解密工具的主界面。主界面窗口有三个标签:设置、加密、解密,要分别对这三个标签做详细的设计,设计时要用到Microsoft Visual Studio里的工具箱里面的工具。每个标签的设计如下:

(1)“加密”标签的设计

此标签包含有4个panel(此处只实现一个)和textBox1,textBox1用于存放传过来的加密路径。panel主要实现文件的拖放和文件的加密功能。当一个文件拖到panel 中时,会弹出一个要求输入密码的对话框。把输入的密码传回到Form1的panel1_dragDrop中,实现拖放功能.此标签包含有4个panel(此处只实现一个)和textBox1,textBox1用于存放传过来的加密路径。panel主要实现文件的拖放和文件的加密功能。当一个文件拖到panel中时,会弹出一个要求输入密码的对话框。把输入的密码传回到Form1的panel1_dragDrop中。

(2)“解密”标签的设计

此界面中有一个panel和一个textbox2, textbox2用于存放传过来的加密路径,panel用于实现文件的拖放和解密功能,当一个文件拖到panel中时,会弹出一个输入密码对话框。把输入的密码传回到Form1的panel5_dragDrop中。

(3)“设置”标签的设计

此界面主要有两个部分组成:加密文件存储路径和解密文件存储路径,由groupbox1、groupbox2、组成。在groupbox11中有两个单选按钮radiobutton1和radiobutton2,分别命名为“与加密文件相同目录”、“指定存储路径”,一个文本框textbox3和一个button1,textbox3用于存放指定的加密路径,button1实现文件的路径的选择。在代码设计部分,要首先让radiobutton1在程序运行时自动获得焦点,在radiobutton1获得焦点时,radiobtuuon2将会失去焦点,同时textbox3和button1的状态为不可见状态。要实现这些功能就要把radiobutton1和radiobutton2同时放到一个函数中

按照以上的步骤就可以实现选择指定的加密路径,但路径只会传给textBox3,在button2中添加如下代码,使textBox3中存放的路径值传给textBox1,并将textBox3的值设置为空。

解密部分的实现过程跟加密大致相同,这里不给予详细说明。

2.加密密钥界面设计

加密密钥界面Form2里由两个标签:label1、label2,分别命名为输入密码、确认密码;两个文本框:textBox1、textBox2,用于用户输入密码(密码以*的形式显示出来);两个按键:button1、button2(分别为确认、取消)。在Form2开始设一个全局变量mm1,当单击确定按钮时对textBox1和textBox2中的内容进行判断,如果两个文本框中输入的值相同,则把textBox2中的值赋给mm1, 提示“加密成功”,并关闭此Form2。如果textBox1与textBox2中的值不同则提示“密码不同,请重新输入!”,并把textBox1与textBox2中的值清空,以便用户重新输入密码。

button2的作用是关闭当前对话框不做任何操作,命令为:this.Close()。这样加密密钥窗口窗口就设计好了。

3.解密密钥界面设计

解密密钥界面的设计与加密密钥界面的设计过程都是一样的,同样Form3由两个标签:label1、label2,分别命名为输入密码、确认密码;两个文本框:textBox1、

textBox2,用于用户输入密码(密码以*的形式显示出来);两个按键:button1、button2(分别为确认、取消)。在Form2开始设一个全局变量mm2,当单击确定按钮时对textBox1和textBox2中的内容进行判断,如果两个文本框中输入的值相同,则把textBox2中的值赋给mm2,提示“解密成功”,并关闭此Form2。如果textBox1与textBox2中的值不同则提示“密码不同,请重新输入!”,并把textBox1与textBox2中的值清空,以便用户重新输入密码。

button2的作用是关闭当前对话框不做任何操作,命令为:this.Close()。

2.4程序实现

2.4.1源码分析

import java.awt.*;

import java.awt.event.*;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import javax.swing.JFileChooser;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

public class encrypt extends Frame implements ActionListener {

private MenuBar menubar;

private Menu menu1, menu2,menu3, menu4;

private MenuItem menuitem1,menuitem1_1,

menuitem2,menuitem2_2,menuitem3,menuitem22,menuitem22_2,menuitem4;

private static JTextArea txtarea;

private MenuShortcut ms1, ms2, ms3, ms4;File f;

encrypt() {

super("本程序:加密解密程序");

txtarea = new JTextArea();

menubar = new MenuBar();

menu1 = new Menu("文件");

menuitem1 = new MenuItem("打开");

menuitem1_1 = new MenuItem("保存");

ms1 = new MenuShortcut(KeyEvent.VK_N);

menuitem1.addActionListener(this);

menuitem1_1.addActionListener(this);

menu1.add(menuitem1);

menu1.add(menuitem1_1);

menu2 = new Menu("保护");

menuitem2 = new MenuItem("二进制加密");

menuitem2_2 = new MenuItem("二进制解密");

menuitem22 = new MenuItem("十六进制加密");

menuitem22_2 = new MenuItem("十六进制解密");

menuitem2.addActionListener(this);

ms2 = new MenuShortcut(KeyEvent.VK_A);

menuitem2_2.addActionListener(this);

menu2.add(menuitem2);

menu2.add(menuitem2_2);

menu2.add(menuitem22);

menu2.add(menuitem22_2);

menu3 = new Menu("编辑");

menuitem3 = new MenuItem("清空");

menu3.add(menuitem3);

menuitem3.addActionListener(this);

menuitem22.addActionListener(this);

menuitem22_2.addActionListener(this);

menu4 = new Menu("帮助");

menuitem4 = new MenuItem("关于");

ms4 = new MenuShortcut(KeyEvent.VK_H);

menuitem4.addActionListener(this);

menu4.add(menuitem4);

menubar.add(menu1);

menubar.add(menu2);

menubar.add(menu3);

menubar.add(menu4);

setMenuBar(menubar);

setLayout(new BorderLayout());

add(new JScrollPane(txtarea), BorderLayout.CENTER); txtarea.setLineWrap(true);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

setSize(900, 600);

setVisible(true);

validate();

}

public void actionPerformed(ActionEvent e) {

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

try{

file();

qu();

}catch(Exception ee){};

}else if (e.getSource() == menuitem1_1) {

try{

file();

shuchu();

}catch(Exception ee){};

} else if (e.getSource() == menuitem2) {

txtarea.setText(fen(encode(txtarea.getText())));

} else if (e.getSource() == menuitem2_2) {

System.out.println(1);

String string=he(txtarea.getText());

if(!string.equals("")){

txtarea.setText(decode(string));

}

} else if (e.getSource() == menuitem22) {

txtarea.setText(encode(txtarea.getText()));

}else if (e.getSource() == menuitem22_2) {

if(!decode(txtarea.getText()).equals("")){

txtarea.setText(decode(txtarea.getText()));

}

}else if (e.getSource() == menuitem3) {

txtarea.setText("");

}else if (e.getSource() == menuitem4) {

txtarea.setText("本程序: \n加密解密多少次随自己愿意..只要你记得解密步骤..");

}

}

public static void main(String[] args) {

new encrypt();

}

public void file(){

JFileChooser fileChooser = new JFileChooser(); // 实例化文件选择器fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); // 设置文件选择模式,此处为文件和目录均可

if (fileChooser.showOpenDialog(encrypt.this) == JFileChooser.APPROVE_OPTION) { // 弹出文件选择器,并判断是否点击了打开按钮

String fileName = fileChooser.getSelectedFile().getAbsolutePath(); // 得到选择文件或目录的绝对路径

f=new File(fileName);

}

}

private static String hexString = "123456789ABCDEF";

private static String decode(String theHex) {

String theRst = "";

byte[] theByte = new byte[theHex.length() / 2];

try {

for (int i = 0; i < theHex.length(); i += 2) {

eByte[i / 2 ] = Integer.decode("0X"+

theHex.substring(i, i + 2)).byteValue();

}

theRst = new String(theByte, 0, theByte.length );

} catch (Exception Ue) {

JOptionPane.showMessageDialog(null, "无法继续解密") ;

}

return theRst;

}

private static String encode(String theStr) {

byte[] bytes;

String result = "";

int tmp;

String tmpStr;

bytes = theStr.getBytes();

for (int i = 0; i < bytes.length; i++) {

if (bytes[i] < 0) {

tmp = 256 + bytes[i];

tmpStr = Integer.toHexString(tmp).toUpperCase();

result += tmpStr;

} else {

tmpStr = Integer.toHexString(bytes[i]).toUpperCase();

result += tmpStr.length()==1?"0"+tmpStr:tmpStr;

}

}

return result;

}

public static String fen(String str) {

byte[] bytes = str.getBytes();

StringBuilder sb = new StringBuilder();

String ss = "";

String quanbu = "";

for (int i = 0; i < bytes.length; i++) {

char count = (char) bytes[i];

ss = Integer.toBinaryString(Integer.parseInt(Integer.valueOf( count + "", 16).toString()));

while (ss.length() != 4) {

ss = 0 + ss;

}

quanbu += ss;

}

return quanbu;

}

public static String he(String str) {

String ur = "";

try{

if(str.length()>=4){

for (int i = 0; i < str.length()/4; i++) {

System.out.println(4);

String s=Integer.valueOf(str.substring((4*(i+1))-4,4*(i+1)),2).toString(); System.out.println(5);

ur+=Integer.toHexString(Integer.parseInt(s));

}

}else{

throw new Exception();

}

}catch(Exception e){

JOptionPane.showMessageDialog(null, "无法继续解密") ;

}

return ur.toUpperCase();

}

public void shuchu() {

try {

FileOutputStream out = new FileOutputStream(f);

byte buf[] = txtarea.getText().getBytes();

try {

out.write(buf);

out.flush();

out.close();

} catch (IOException e) {

// e.printStackTrace();

}

} catch (FileNotFoundException e) {

// e.printStackTrace();

}

}

public void qu() {

try {

FileInputStream in = new FileInputStream(f);

int a = (int) f.length();

byte buf[] = new byte[a];

try {

int len = in.read(buf);

if (len == -1)

System.out.println("文件为空");

else

txtarea.setText(new String(buf, 0, len)); } catch (IOException e) {

// e.printStackTrace();

}

} catch (FileNotFoundException e) {

// e.printStackTrace();

}

}

}

2.4.2程序运行情况

通过对文件的加密,可得到程序运行结果如图2.1所示。

图 2.1 程序运行结果

通过运行解密,可得到程序运行过程图如图2.3所示。

图 2.2 程序运行过程

通过打开文件,,可得到程序打开文件如图2.3所示。

图 2.3 程序打开文件

2.4.3程序异常处理

运行过程中,当程序运行到把它保存到key.txt中时,将抛出一个Key类的异常

对象,然后使用try-catch 去捕捉这个异常。

try {

new Key("key.txt");

} catch (Exception e) {

e.printStackTrace();

}

}

当解密运行过程中,将抛出一个Key类的异常对象,然后使用try-catch 去捕捉这个异常。

try{

if(str.length()>=4){

for (int i = 0; i < str.length()/4; i++) {

System.out.println(4);

String s=Integer.valueOf(str.substring((4*(i+1))-4,4*(i+1)),2).toString(); System.out.println(5);

ur+=Integer.toHexString(Integer.parseInt(s));

}

}else{

throw new Exception();

}

}catch(Exception e){

JOptionPane.showMessageDialog(null, "无法继续解密") ;

}

当保存过程中,将抛出一个Key类的异常对象,然后使用try-catch 去捕捉这个异常。

try {

int len = in.read(buf);

if (len == -1)

System.out.println("文件为空");

else

txtarea.setText(new String(buf, 0, len));

} catch (IOException e) {

// e.printStackTrace();

}

第3章课程设计总结

每一次当学完一种计算机语言后都有一次自己设计的机会,这个学期的java也不例外,虽然说我学的不太理想,但对于这次课设我还是很努力的去琢磨,查找,请教每一个更懂的人,只为了能很好的完成这次课设而奋斗!

社会是在进步的,而科学更是在飞速发展,对于生活在信息时代的人们已经。计算机技术和网络技术深入到社会的各个领域,因特网把“地球村”的居民紧密地连在一起。如果说“天涯若比邻”在过去只是描写人们的心灵上的贴近,那么今天计算机网络已使这句话变成了生活现实。

说起来每个人都会有一些不乐意被人知道的隐私,比如工作计划、个人信息等等,为了保护这些秘密,加密软件便成了许多人的首选。利用密码对各类电子信息进行加密,以保证信息在处理、存贮、传送和交换过程中不致泄露。这是迄今为止对电子信息实施保护和保证信息安全的有效措施之一。信息加密技术在保障计算机系统的安全中占有重要的地位。

古往今来,通信中的安全保密问题一直受到广泛关注。历史上,交战双方在通信安全、保密和密码破译方面的优势均被认为是取得战争胜利的关键因素之一。而今,人类已进入信息化时代,现代通信涉及各行各业,信息安全已成为人人都关心的事情,这就促使密码学揭去了神秘的面纱,为更广泛的领域和大众服务。然而,凡事“有一利必有一弊”。人们在得益于信息革命所带来的新的巨大机遇的同时,也不得不面对信息安全问题的严峻考验。如果我们的网络中缺少最起码的安全手段,自由又从何谈起呢?因此加密作为网络系统安全的重要手段之一,被业界广泛认可并采用。而一旦忘记了密码怎么办?当然我们可以通过解除信息密码的方法来解决难题。所以能不能熟练的掌握网络加密和解密技术对于用户的网络安全来说——可是至关重要的。

在这次的课设设计中我学到了很多,不仅仅是对加密解密的理解的更近一步加深,更是对Java的更深层次的最求,在一次次的天明与深夜的来临我在电脑旁的苦思是我对课设的付出,不过最后的结果还是很令我欣喜的毕竟我做出来了,毕竟我的努力得到了结果。最后我深深地谢谢老师和同学在我遇到问题时的细心指导。没有你们的鼓励和教导我是不会这么轻易做出来的,谢谢了!

参考资料

1.吴仪 JAVA大学实用教程电子工业出版社 2005-03

2.杨义 JAVA大学实用教程实验指导航空工业出版社 2005-03 3程流 JAVA2技术机械工业出版社 2003-06

4.建辉 Java实例技术手册中国电力出版社 2001-11

5.杨明 Java程序设计与应用开发清华大学出版社 2005-03

6.徐廖 Java应用与开发案例教程清华大学出版社 2005-07

7.赵雨 Java程序设计主题辽宁大学出版社 2004-03

8.冥羽 JAVA大学实用教程沈阳工业出版社 2005-03

9.桦强 JAVA大学实用教程实验指导电子工业出版社 2005-03

10.杨峰 JAVA2核心技术清华大学出版社 2003-06

11.孙宁 Java编程案例精讲电子工业出版社 2005-01

12. 铭夏 Java项目开发实践中国铁道出版社 2005-05

文件加密与解密—Java课程设计报告

JAVA课程设计题目:文件的加密与解密 姓名: 学号: 班级: 日期:

目录 一、设计思路 (3) 二、具体实现 (3) 三、运行调试与分析讨论 (8) 四、设计体会与小结 (11) 五、参考文献 (12) 六、附录 (12)

一、设计思路 自从Java技术出现以业,有关Java平台的安全性用由Java技术发展所引发的安全性问题,引起了越来越多的关注。目前,Java已经大量应用于各个领域,研究Java的安全性对于更好地利用Java具有深远的意义。使用Java的安全机制设计和实现安全系统更具有重要的应用价值。 本课程设计,主要实践Java安全中的JCE模块,包括密钥生成,Cipher对象初始化、加密模式、填充模式、底层算法参数传递,也涉及文件读写与对象输入输出流。 二、具体实现 本系统通过用户界面接收三个参数:明文文件、密文文件、口令。采用DES加密算法,密码分组链(Cipher Block Chaining,CBC)加密模式,PKCS#5-Padding的分组填充算法。因为CBC涉及到底层算法参数的解密密钥的传递,所以将明文文件中的字节块以密封对象(Sealed Object)的方式加密后,用对象流输出到密文文件,这样就将密文、算法参数、解密密钥三都密封到一个对象中了。口令的hash值作为产生密钥的参数。设计流程图如下所示: 文件加密与解密设计流程图

本系统中,包含Default,Shares,SecretKey,EncAndDec四个包共6个类组成。定义的几个参数:MAX_BUF_SIZE为每次从文件中读取的字节数,也是内存缓冲区的大小;加密算法为DES;加密模式是密码分组链(CBC)模式;分组填充方式是PKCS#5Padding。包和类结构图如下所示: 本课程设计,包和类结构图: 以下为包中的类的方法实现说明 Package Shares类结构图

JAVA课程设计报告

《JA V A程序设计》 课程设计报告 设计题目:学生信息管理系统学院名称:信息工程学院 专业班级:13计本1 姓名: 学号:

目录 一需求分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 二概要设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 三详细设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.1 数据库设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2 模块及窗体设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2.1 数据库模块设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2.2 用户登录识别模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5 3.2.3用户信息管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 (1)密码修改。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 (2)用户信息添加和删除。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8 3.2.4 学生息管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 (1)添加信息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 (2)信息查看。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。11 (3)信息修改。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12 (4)删除信息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。14 3.2.5 系统管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 3.2.6 主窗体菜单设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 四软件测试。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 五总结。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 参考资料:.......................................................17

加密解密课程设计

兰州商学院陇桥学院工学系课程设计报告 课程名称: Java 设计题目:加密与解密 系别:工学系 专业 (方向):信息管理与信息系统 年级、班:2012级(2)班 学生姓名:费亚芬 学生学号: 208

指导教师:张鑫 2014年7 月 1日 目录 一、系统开发的背景................................. 错误!未定义书签。 二、系统分析与设计................................. 错误!未定义书签。(一)............................................. 系统功能要求错误!未定义书签。(二)......................................... 系统模块结构设计错误!未定义书签。 三、系统的设计与实现............................... 错误!未定义书签。(一)图形用户界面模块 ........................... 错误!未定义书签。(二)加密操作模块 ............................... 错误!未定义书签。 (三)解密操作模块................................ 错误!未定义书签。(四)文件保存模块 ............................... 错误!未定义书签。

(五)文件选择模块 ............................... 错误!未定义书签。 四、系统测试....................................... 错误!未定义书签。(一)测试加密..................................... 错误!未定义书签。(二)测试选择加密文件............................. 错误!未定义书签。(三)测试生成加密文件............................. 错误!未定义书签。(四)测试浏览加密文件............................. 错误!未定义书签。(五)测试解密文件................................. 错误!未定义书签。 五、总结........................................... 错误!未定义书签。 六、附件(代码、部分图表) ......................... 错误!未定义书签。

JAVA课程设计题目

Java课程设计题目 一、课程设计的目的 为了进一步巩固java程序设计课程所学到的知识,深刻把握Java语言的重 要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了一周的Java程序设计课程设计。 通过此次课程设计,巩固所学java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使学生通 过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程 思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 二、课程设计的基本要求 1、明确题目要求,进行需求分析; 2、进行功能设计,编写设计说明; 3、进行程序设计与调试; 4、对设计过程进行系统的总结; 5、界面美观大方; 6、完成设计报告 7、课程设计建议在Editplus +JDK、JCreator +JDK、myeclipse平台上开发、调试。 8、 Java源程序应加上详尽的注释语句,对所设计的类、属性、方法说明其用途,对方法的调用说明其用意和使用参数的原因。特别是有深刻理解、有独 特见解的地方,用注释语句加以说明。 三、课程设计的主要内容 利用学到的编程知识和编程技巧,通过具体项目的分析、设计和开发,掌握开发Java大型软件项目过程中所需要的软件技术并熟悉软件。 可以以小组为单位,每组1至2名学生,在教师的指导下,每组完成一个题目。题目可由下面提供的选题中选择或学生自选经教师审核后方可。该组每个同学承担题目的不同部分,每位同学的课程设计报告必需独立完成。 题目类型大致分配如下: 1、网络通讯类,编制网络聊天(Chat)程序,以下简称“网络”类。

密码学课程方案AES加密解密文档

个人资料整理仅限学习使用 成都信息工程学院课程设计报告 AES加密解密的实现 课程名称:应用密码算法程序设计 学生姓名: 学生学号: 专业班级: 任课教师: 年月日

个人资料整理仅限学习使用 附件:课程设计成绩评价表

个人资料整理仅限学习使用目录

1.背景 AES,密码学中的高级加密标准

2013级JAVA课程设计题目

Java课程设计题目 一、课程设计总体要求: 本次课程设计是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践,因此,开始设计前学生一定要先回顾以前所学的内容,明确本次作业设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。通过编写一个基于JA V A的应用系统综合实例,来掌握Java语言编程技巧。 重要说明日程说明: 1、4月21日前分组选题,查询资料,21-27日程序设计以及上机调试。最多2人一组。 2、设计报告打印一份,并将电子版以”13信算xx班第XX组报告.rar”的压缩包发到邮 箱:325822013@https://www.360docs.net/doc/a03976621.html,邮箱。 3、压缩包里包含:设计报告的word版,word名称参考说明2,程序源代码文件。 注意:4月27日23点59分之后不再接收电子以及纸质稿,逾期成绩一律按不及格计算,联系方式qq:325822013,TEL:670705。 机房开放安排说明: 1.机房地点:求中502、503 2.时间安排共开放2.5天: 21日(周一):1-2节信算1、2班/ 3-4节数学1、2班/ 5-6节信算3班 23日(周三)全天,25日(周五)上午自由开放 二、参考题目及要求: 1、编写一个记事本程序(2人) 要求:用图形用户界面实现。 能实现编辑、保存、另存为、查找替换等功能。 提示:使用文件输入输出流。 2、ATM柜员机模拟程序(3人) 要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: 1、查询余额:初始余额为10000元 2、A TM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。 3、A TM存款:不能出现负存款。 4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 3、超市收银系统(3人) 要求:使用图形用户界面。 由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。从数据库中取出有关价格信息,再把这些信息返回给收银台。同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。 另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠。

java文件加密解密课程设计

软件学院 课程设计报告书 课程名称面向对象程序设计 设计题目文本文档的加密与解密 专业班级财升本12-1班 学号 1220970120 姓名王微微 指导教师徐娇月 2013年 1 月

1 设计时间 2013年1月14日-2013年1月18日 2 设计目的 面向对象程序设计是一门实践性很强的计算机专业基础课程。通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。 3 设计任务 对文件进行加密解密 4 设计内容 4.1 需求分析 (1)给定任意一个文本文件,进行加密,生成另一个文件。 (2)对加密后的文件还原。 4.2 总体设计 4.2.1 包的描述 导入了java.awt; java.awt.event; java.io; javax.swing等包。 4.2.2 类的描述 Myframe类;E1类。其中Myframe类继承Frame类;可以扩展Frame的功能并且可以实例化的多种功能,这个类也实现了ActionListener这个接口,它是Java中关于事件处理的一个接口,ActionListener用于接收操作事件的侦听器接口。对处理操作事件感兴趣的类可以实现此接口,而使用该类创建的对象可使用组件的addActionListener 方法向该组件注册。在发生操作事件时,调用该对象的actionPerformed 方法。 4.3 页面设计

图4.3-1 显示页面 代码实现: addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });

文件加密系统课程设计

仲恺农业工程学院课程设计 文件加密 姓名孙浩斌 院(系)信息科学与技术学院 专业年级计算机132 学号 指导教师罗慧慧 职称学生 起止时间2015-6-15至2015-6-24 仲恺农业工程学院教务处制 目录

一.课程设计目的和要求 设计目的 有时我们有些资料不希望别人看到,最常用的方法就是加密。对给定的相关文件进行加密可以对文件进行保护,可以防止某些重要信息不被别人所知道甚至窃取。对文件起到保护作用,可以方便用户使用某些只有自己能知道的信息,能够安全保护文件的相关内容几信息不被外流。随着信息社会的到来,人们在享受信息资源所带来的巨大的利益的同时,也面临着信息安全的严峻考验。信息安全已经成为世界性的现实问题,信息安全问题已威胁到国家的政治、经济、军事、文化、意识形态等领域,同时,信息安全问题也是人们能否保护自己的个人隐私的关键。信息安全是社会稳定安全的必要前提条件。通过课程设计,使学生了解高级程序设计语言的结构,逐渐培养学生的编程能力、用计算机解决实际问题的能力,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。 程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试程序及编写设计报告。

本课程设计的目标: 1. 巩固《高级语言程序设计》课程学习的内容和加深学生对基本知识的理解和掌握。 2. 掌握编程和程序调试的基本技能。 3. 掌握软件设计的方法。 4. 提高运用程序设计解决实际问题的能力。 5. 培养独立思考、综合运用所学有关相应知识的能力。 6. 强化上机动手编程能力,闯过理论与实践相结合的难关! 设计要求 1. 分析课程设计题目的要求,根据所要求的程序功能,画出程序的流程图。 2.对系统功能模块进行分析,写出详细设计说明文档。 3.对程序源代码进行调试与测试,使其能正确运行。 4.设计完成的软件要便于操作和使用。 5.设计完成后提交课程设计报告。 设计意义 至今,密码技术是取得信息安全性最有效的一种方法, 密码技术是信息安全的核心技术。通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。进一步,密码技术可以应用于数字签名、身份认证和信息鉴定,这些应用对于资源存取控制以及其它安全措施是必须而且有效的。相对于防病毒软件和防火墙软件来说,基于密码技术密码类产品、认证类产品份额相对较小,但随着金融、电信、政府等行业信息化建设对于网络安全整体解决方案需求的增加,将会有较大的增长。

java课程设计参考题目

参考题目 选题原则:所完成的系统应能够在生活、学习中使用,以实用性为主。模仿生活、学习中使用到的各种软件,做mini版本。开发的目标是自己、同学愿意使用你所开发的软件完成一些简单任务。从小功能着手,一点点的添加功能。添加一个功能就运行试试,减少越来越难于调试的可能。也可自选。jsp或java完成都可。 1.文件复制 完成一个程序,这个程序可以将指定文件夹中的内容复制到另一个文件夹中去。 设计要求: 1)实现文件夹复制; 2)程序中需要考虑输入输出异常处理; 3)用户可以指定不同的参数:用-ext指定要复制的文件的扩展名,可以 同时指定多个扩展名;用-empty指定不复制空目录;用-zip表示进行压缩; 还可以增加其它选项 4)在dos控制台窗口环境下,通过命令行参数运行程序,如: 2.图片浏览器 类似于ACDSEE的图片浏览器 设计要求: 1)可以对图片进行不同的分类,并能够按分类显示 2)备份功能,用压缩实现用户选定文件的备份,用户指定文件的方式 要多样,如在分类上、在实际文件夹上。 3)幻灯功能,通过分类、实际文件夹等多种方式指定要幻灯浏览的图 片; 3.压缩文件浏览器 仿照Winrar浏览压缩文件。 设计要求: 1)能够以图形方式显示zip、tar、jar压缩文件中的内容

2)能解压用户选定的文件到选定的目录,注意winrar中指定解压整个 目录的方式 3)能够对压缩文件增加注释 4.文件加密工具 能够对文件、文件夹进行加密,可以由用户选择加密算法。 设计要求: 1)图形界面选定加密、解密的文件。 5.提醒簿(使用数据库) 仿照雪狐提醒簿。 设计要求: 1)由用户定义时间及提醒的内容; 2)定时时间到弹出窗口提醒或使用其它方式; 3)用户可以更改、删除提醒; 4)提醒的方式中包括使用邮件; 5)可以浏览提醒,已完成和未完成使用不同的图标; 6)用户可以注册、登录,登录的显示属于自己的提醒事项; 7)可以导出、导入提醒。 6.部门员工管理系统(使用数据库) 图形界面实现对部门、员工的管理。部门可以增、删、改,员工可以增、删、改及在不同的部门间调动。部门放JComboBox中,所属员工信息用多个JTextField 或JTable显示都可。要用菜单实现不同的功能。 7.备忘录(使用数据库) 设计要求: 1)系统界面的左侧是日历,该日历可以按年份前后翻动,在某年内按 月可以前后翻动; 2)单击选定的日期,系统界面的右侧显示相应的记事,可增、删、改; 3)每日的记事可有多条。 8.学生成绩管理系统(使用数据库) 功能要求: 2

java课程设计题目

java课程设计题目 设设HoMEWORK2012-02-2819:23 要求设明, 1.人一设~每设设设设一设目~如果列出多版本~只需要完成其中一版本两个个个即 可 2.由设委设设设设设各设设及其设目~下周以设子模式提交设目列表名设学档 3.每设必设完成相设的UML设;至少需要包括用例设、设设、设序设或者设作设,~UML 设可有Visio或者Rose或者StarUML或其他设似的工具完成 4.第六周设始机抽设设大家演示设述从随 设目列表如下, 1.打字游设(JavaGUI本地版/JSP版本/Javascript) 2.设文件设行明文加密(JavaGUI本地版) 3.在设设店设设站网(WEB版本) 4.5子棋游设(设版网/WEB版) 5.俄设斯方设(设版网/WEB版) 6.音设播放器(JavaGUI本地版) 7.设子相册(JavaGUI本地版) 8.多人聊天室((JavaGUI本地版/WEB版)9.模设考设系设(WEB版) 10.克游设扑(JavaGUI本地版/WEB版) 设设设明, 1.打字游设(JavaGUI本地版/JSP版本/Javascript)

设设背设设和打字速度, 可根据一片文章自设设入设设 整设设下落或者淡入淡出个 同设多设设出设个 设设入设设的设设分析设设功能 设分 2.设文件设行明文加密(JavaGUI本地版) DEC加解密,需要密设~可以解密 3.在设设店设设站网(WEB版本) 设设目的目的是设设一设合站~设设《在设设店》的基本功能~如管理设设~上设个网网 售网设设等功能。要求站能设布到Internet上。设站采用网 Jsp+JavaBean+JDBC+MySql|SQLServer等技设架~服设器端采用框Tomcat服设器。 4.5子棋游设(设版网/WEB版) 设设程序~完成下述功能,在大于9设的方形格棋设上~放置黑白色棋子条网两~两网弈两条人各设一色~通设设设~可以在任何设的交点上放置棋子~同色棋子~先同行、同列或者同设角设上5设设成一设者设设。条 5.俄设斯方设(设版网/WEB版) 设设程序~完成下述功能, 完成一可以人通设设设设的俄设斯方设游设~每一方都可以在自己的幕个两个网屏 上看到设方的前游设~游设先设束的一方设失设者当状况 6.音设播放器(JavaGUI本地版)

DES加密解密课程设计报告

D E S加密解密课程设计报 告 Prepared on 22 November 2020

成都信息工程学院课程设计报告 DES算法加密与解密的设计与实现课程名称:密码算法程序设计 学生姓名: 学生学号: 专业班级: 任课教师: XX年 XX 月 XX 日

目录

1背景 DES算法概述 DES(Data Encryption Standard)是由美国IBM公司于20世纪70年代中期的一个密码算(LUCIFER)发展而来,在1977年1月15日,美国国家标准局正式公布实施,并得到了ISO的认可,在过去的20多年时间里,DES被广泛应用于美国联邦和各种商业信息的保密工作中,经受住了各种密码分析和攻击,有很好的安全性。然而,目前DES算法已经被更为安全的Rijndael算法取代,但是DES加密算法还没有被彻底的破解掉,仍是目前使用最为普遍的对称密码算法。所以对DES的研究还有很大价值,在国内DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键的数据保密,如信用卡持卡人的PIN 码加密传输,IC卡与POS机之间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。 DES算法是一种采用传统的代替和置换操作加密的分组密码,明文以64比特为分组,密钥长度为64比特,有效密钥长度是56比特,其中加密密钥有8比特是奇偶校验,DES的加密和解密用的是同一算法,它的安全性依赖于所用的密钥。它首先把需要加密的明文划分为每64比特的二进制的数据块,用56比特有效密钥对64比特二进制数据块进行加密,每次加密可对64比特的明文输入进行16轮的替换和移位后,输出完全不同的64比特密文数据。由于DES算法仅使用最大为64比特的标准算法和逻辑运算,运算速

计算器设计的java课程设计报告

计算器设计的java 课程设计报告

华东交通大学课程设计课程设计题目:计算器设计 课程: Java程序设计 题目:计算器设计 年级:级 专业:信息一班 学号: 姓名: 组员: 指导教师:

课程设计(论文)任务书 基础学院信息与计算科学专业—1班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自年 6 月23日起至年6月27日止。 三、课程设计(论文) 地点: 计算机中心 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。

3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献: (1)丁振凡.《J ava语言程序设计》清华大学出版社 (2)丁振凡.《J ava语言程序设计实验指导与习题解析》清华大学出版社 (3)http:/ /https://www.360docs.net/doc/a03976621.html, 6)课程设计进度安排 内容天数地点

c语言课程设计-文件加密解密(含源代码)

C 语 言 课 程 设 计 实 验 报 告 实验名称:文件加密解密 院系:软件学院 学号: 日期:2012年9月3日—9月17日

一:设计题目 1:设计图形用户界面。 2:对文件进行加密并对加密文件进行保存。 3:对加密了的文件进行解密。 二:设计过程 设计过程中遇到的困难和解决方法: 1:不能很好地理解题意(通过老师的讲解)。 2:不知道如何设计加密解密程序(通过翻阅书籍和上网查找资料) 过程: 首先通过学习老师提供的资料了解大致的设计过程并懂得运用一些以前没有学习过的c语言。先利用文本文件设计出加密解密的主要过程并能运行。知道如何运用fopen将原文件打开并用fread将原文件内容读出来,然后进行加密设计并将加密的数据用fwrite写进指定的文件中并保存。然后读出加密的文件并解密并保存。最后在写出的程序中加入图形用户界面,运用window,box,gotoxy等进行设计。 三:源代码 #include /* 标准输入、输出函数 */ #include /* 标准库函数 */ #include //*字符串处理函数 */ #include /* 字符操作函数 */ #include #include #define key_down 80 #define key_up 72

#define key_esc 1 #define key_enter 28 #define SIZE 1 void box(int startx,int starty,int high,int width); int get_key(); char buf[20*20*4]; /*///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////加密解密 */ void fun(char *list,char *sd) /*加密过程*/ { FILE *fp1,*fp2; char buf[1000]; /*文件临时存放处*/ register int ch; fp1=fopen("e:\list.txt","r"); /*用可读方式打开文件*/ fp2=fopen("e:\sd.txt","w"); /*用可写方式创建一个文件*/ if(fp1==NULL) { printf("cannot open file\n"); exit(1); } if(fp2==NULL) { printf("cannot build file\n"); exit(1); } ch=fgetc(fp1); /*读出打开文件的光标处的一个字符*/ while(!feof(fp1)) /*读出的字符不是最后的字符*/ { ch=ch<<1; /*加密方法*/ fputc(ch,fp2); /*加密的字符存放在指定的地方*/ ch=fgetc(fp1); } rewind(fp2); /*将光标移动到第一个字符前面*/ fread(buf,sizeof(buf),1,fp2); /*从文件的当前位置开始中读取buf中存放的数据*/ printf("%s",buf); /*fclose(fp1); fclose(fp2); */ }

java课程设计2013级大纲以及设计报告

珠海学院课程教学大纲 课程名称:java程序课程设计 适用专业: 2013级计算机科学与技术 课程类别:专业基础课 制订时间:2014年12月 计算机科学与技术系制

目录 1java程序课程设计教学大纲 2 java程序课程设计说明书 3 java程序课程设计报告(模板) 4 java程序课程设计成绩评定表 java程序课程设计教学大纲 (2011年制订,2014年修订) 一、课程编号: 二、前修课程:java程序设计 三、学分:2学分 四、学时: 32学时 五、课程性质与任务: 1.课程性质:《java程序课程设计》是吉林大学珠海学院计算机科学与技术系为本科生各专业开设的专业实践课。计算机科学与技术系本科生在完成《java 程序设计》课程学习后,通过本课程进入专业实践训练环节,其主要目的是使学生深入理解并实践在《java程序设计》课程中所学的有关知识,通过课程设计增强学生的实践动手能力,提高学生独立分析和解决实际问题的能力。培养学生配合完成任务的能力,为学生毕业后的实际工作打好基础。 课程设计是培养学生综合运用所学知识锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。Java语言的应用十分广泛,例如大型信息系统、通信、网络控制等。java课程设计对增强学生对基础知识的掌握和综合运用是非常必要,对后续许多专业课程的学习和实践训练都具十分重要的意义。 2.课程任务:本课程要求学生在学习了java基础编程的相关技术后,将课本中多个章节的编程技术灵活运用到一些复杂的综合例题中去,使学生了解应用问题

的分析方法和设计解决实际问题的具体过程,掌握应用java进行程序设计的基本规范和技巧,掌握面向对象编程的设计思想,重点掌握java的基本语法规则、输入输出方法、网络编程、多线程编程、小应用程序、数据库编程的综合应用。通过编程掌握调试java程序的基本技巧、模块化应用程序和测试运行复杂应用程序的基本流程。 六、课程教学基本要求提供足够多的程序设计选题,题目应覆盖面较为广泛,部分题目要具有开放性,要求每个学生根据自己的实际情况选择题目,经教师批准后即可进入实际工作阶段。 课程设计结束对每个学生进行验收,要求每个学生提交合格的课程设计报告,还要保证程序能够运行,能够讲清楚自己的工作。老师在检查过程中可针对程序提出问题,学生回答,若程序无法运行得到结果并且具有大量编译错误,而且对程序的内容无法正确解释,则实践老师可以根据实际情况给予评分为不及格,若程序可以运行,但完成的界面以及方法不够完善,则酌情扣分,若程序运行无问题,则提问回答不好的也要相应扣分。课程设计课程集中安排在第十一周。每个同学都要提交初期、中期和最后的文档,提交课程设计报告,要求在规定时间内提交文档。最后验收时,若文档不全,成绩受到一定影响。 七、学时分配表 2011年 12 月8日 java程序课程设计说明书

java文件加密课程设计

结业报告 课程名称:网络安全技术 设计题目:java实现文件加密 系别:***学院 专业:*************** 组员:**************************起止日期***************** 指导教师:***

摘要 目前世界范围内的信息安全问题越来越严重。解决信息安全问题涉及面很广,它包括技术,管理.制度,人员和法律等诸多方面,但最核心部分是密码技术。密码技术是实现一种变换,它使得对大量信息的保护变为对少量密钥的保护。 本次结业设计以文件的加密与解密问题为主要研究讨论方向。先对加密技术进行查找资料。然后对加密方法进行概述,而后对3DES加密进行详细介绍何分析,并对结业设计成果进行演示,最后附上代码。由于本次结业设计时间仓促外加能力有限,有诸多不足之处以及可能存在某些为发现错误还请批评指正。感谢之至。 关键词:加密解密密钥 3DES Abstract At present, the problem of information security is more and more serious in the world. To solve the problem of information security involves a wide range, including technology, management, system, personnel and law, etc., but the most important part is the password technology. Password technology is to achieve a transformation, which makes the protection of a large number of information into a small number of key protection. The graduation project to document encryption and decryption issues as the main research and discussion. First, the encryption technology to find information. Then the encryption method is outlined, and then the 3DES encryption for detailed analysis, and the completion of the design results are demonstrated, and finally attached to the code. Due to the limited capacity of the completion of this graduation project, there are many deficiencies and there may be some to find errors also please criticism. Thanks to.

JAVA课程设计题目及要求.

Java课程设计题目及要求 一、课程设计总体要求: 本次课程设计是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践,学生确定设计题目后,要明确本次课程设计所要用到的技术点,回顾之前学习的这些知识点,或者到网上搜索以及查阅相关的书籍来搜集资料。通过编写一个基于JAV A的应用系统综合实例,来掌握Java语言编程技巧。 二、参考题目及要求: 学生可选择下面题目或者自定题目,但要求具有一定难度和复杂度,是一个较为完整的应用程序。 1、编写一个记事本程序 要求: 用图形用户界面实现。 能实现编辑、保存、另存为、查找替换等功能。 提示:使用文件输入输出流。 2、编写一个计算器程序 要求: 界面模拟Windows中的计算器程序。 实现基本数学运算、函数等功能:加、减、乘、除、阶乘、正弦、余弦和指数运算。 实现要点:添加相关组件并进行按钮事件处理和键盘事件处理。

3、模拟龟兔赛跑 要求: 用图形用户界面实现。 能设置比赛时间,马匹的数量等等。 在任意时间段内马匹的速度是随机的。 开始比赛之后以动画显示赛马过程。 提示:使用多线程,赛马也可换成其他。 4、学生信息管理系统 要求: 使用图形用户界面 用数据库建立1或2个学生信息表。(不限使用哪种数据库能连接数据库并实现查询、增、删、改等功能。 5、图书信息管理系统 要求: 使用图形用户界面 用数据库建立1或2个图书信息表。(不限使用哪种数据库能连接数据库并实现查询、增、删、改等功能。 6、ATM柜员机模拟程序

要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: (1、查询余额:初始余额为10000元 (2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。 (3、ATM存款:不能出现负存款。 (4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 7、超市收银系统 要求:使用图形用户界面。 由收银员输入顾客的会员卡卡号(若有卡、所购商品的货号等。从数据库中取出有关价格信息,再把这些信息返回给收银台。同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。 另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠。 8、电话号码查询系统。 要求:有电话录入,修改,增加,删除,按姓名查询,按电话号码查询,按部门查询,按部门显示,显示所有电话号码信息,打印等功能。 三、整体要求: 建议使用Eclipse开发环境完成作业,界面友好,代码的可维护性好,有必要的注释。

java课程设计报告-万年历

山西大学Java课程设计报告 题目:万年历 班级:14 班 学号: 姓名:

2016年12月 目录 1 绪论 (1) 1.1选题目的及意义 (1) 1.2 系统概述 (1) 1.3 人员组成及分工 (1) 2 需求分析 (1) 3 总体设计 (1) 4 详细设计 (1) 5 系统实现 (2) 5.1 开发环境 (3) 5.2 关键技术 (3) 6.运行结果 (6) 7.软件测试 (7) 8.总结 (7)

9 参考文献 (8) 1.绪论 1.1选题目的及意义 选题目的:本次课程设计为课本后设计题目任选一题进行设计。思考一段时间后,我们组决定做一个万年历的设计。主要考虑到以前时间少课程内容多,JAVA课程基础内容掌握并不是很抓实,而对于设计一个万年历程序,由于其功能简单设计也相对较易,对于我们每个人的学习情况比较合适,并且通过设计这样的一个日历小组件,也能使自己对JAVA 的一些基础知识掌握的更加牢固。 1.2 系统概述 随着电子技术的不断发展,人们的不断创新,万年历已经不再局限于书本形式,而是以电脑软件或者电子产品的形式出现。让其更加便捷。在学习了JAVA课程后,将以JAVA 形式编译出一个简易的万年历。 1.3 人员组成及分工 :负责搜集查找资料 :调试程序 最后进行程序的编写与修改

2.需求分析 本程序的要求为:1.使用图形用户界面; 2.本程序能够实现日期与星期的查询。 3.可以添加或者删除日志 3.总体设计 (1)可以通过图形界面显示日历。 (2)能以月历形式显示日期与星期。 (3)支持用户自己输入年份,可以通过上一年,下一年等按钮来选择年份和月份。(4)可以添加或者删除并且点击对应日期显示日志。 4.详细设计 1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是 闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。 2. 输出月份第一天为星期几的算法:使总天数除以7取余得几既为星期几,若是 0,则为星期日。 3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该 日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。 4. 查询年份必须为四位有效数字,否则不予显示。 5.显示系统时间。 6.流程图

java课程设计指导书

前言 Java高级程序设计是计算机科学的基础理论知识,也是软件设计的技术基础。本课程设计的性质是检验理论课学习的效果以及综合运用的能力,目的是训练学生进行复杂程序设计的技能和培养良好程序设计的习惯。本课程设计的任务是要求学生使用Java语言编程,解决具有一定规模的、具有实际意义的应用题,实现理论课所要求掌握的java解决实际问题。本指导书由计算机与通信工程学院黄永丽编写,由于时间仓促,难免有许多错误欢迎广大师生批评指正。

目录 前言 一、课程设计的基本任务 二、课程设计目的和意义 三、课程设计的要求 四、课程设计的内容 五、课程设计的基本步骤和方法四、课程设计说明书 附录1 课程设计任务书模板附录2 课程设计总结报告模板

一、课程设计的基本任务 Java高级程序设计是一门涉及java基础编程和高级编程的课程,需要较好的java语言的程序设计和调试能力,如果学生能够按照要求,从时间和精力上保证完全的投入,相信能够有很大的收获,学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时的向教师汇报。 《Java高级程序设计》课程设计是计算机科学与技术专业的主要实践性教学环节。在进行了专业基础课和《Java高级程序设计》课程的基础上,设计一个实际的应用软件,初步软件设计的基本方法,提高进行工程设计的基本技能及分析、解决实际问题的能力,为毕业设计和以后的工程实践打下良好的基础。

二、课程设计目的和意义 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。按照教学培养计划要求,学生在学习完课本中指定课时的知识后,应安排一定课时的课程设计。其主要目的是使学生深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等。 本课程设计是为了配合Java程序设计课程,帮助学生深入学习掌握Java语言,熟练运用这个工具而设立的课程。通过课程设计各个项目的综合训练,加强学生对JAVA语言的理解,检验学生对专业理论知识理解与掌握的程度,锻炼学生综合运用JAVA程序设计处理所学的知识实际分析问题、解决问题的能力,使课堂上的理论在实践中得到运用,提高学生的综合素质,为学生毕业后的实际工作打好基础。 三、课程设计的要求 本次课程设计是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践,因此,开始设计前学生一定要先回顾以前所学的内容,明确本次作业设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。通过编写一个基于JAVA的应用系统综合实例,来掌握Java语言编程技巧。 根据Java课程设计的特点,课程设计的选题要结合所学专业,对所选课题,要认真进行调查研究、系统分析,选题应当符合以下要求:

相关文档
最新文档