加密与解密 (JAVA课程设计 2011)

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

}
10
public void jian() { f = new File(lujin.getText()); try { f.createNewFile(); } catch (IOException e) { JOptionPane.showMessageDialog(null, "路径错误"); } }
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 > 0)
JLabel jl2 = new JLabel("密钥"); key = new JTextField(15); JButton jiami = new JButton("加密");
7
JButton jiemi = new JButton("解密"); JPanel jp4 = new JPanel(); jp4.setLayout(new GridLayout(2, 1, 5, 5)); JPanel jp2 = new JPanel(); jp2.add(jl2); jp2.add(key); jp2.add(jiami); jp2.add(jiemi); jp4.add(jp2);
nr = new JTextArea(); c.add(new JScrollPane(nr), BorderLayout.CENTER);
qu = new JRadioButton("写入"); xie = new JRadioButton("取出", true); fz = new ButtonGroup(); fz.add(qu); fz.add(xie);
4 设计内容
4.1 设计题目
加密与解密
4.2
功能实现
给定任意一个文本文件,进行加密,生成另一个文件。 对加密后的文件还原。
4.3
程序模块
开 始
创建 对象 执行 构造 方法
创建 框架 内容 并注 册监 听器
执 行 监 听 器
主 函 数
结 束
3
4.4
程序界面
4
5
4.5
程序源代码
import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*;
jiemi.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { ObjectInputStream input; try { input = new ObjectInputStream(new FileInputStream(lujin .getText())); int mima = Integer.parseInt(key.getText()); AA ac = (AA) input.readObject(); if (ac.getShu() == mima) { nr.setText(); shuchu(); } else { nr.setText("错误的 key"); } } catch (Exception e) {
public class Key extends JFrame {
int b;
JTextField lujin, key;
JTextArea nr;
6
JRadioButton qu, xie;
ButtonGroup fz;
File f;
public Key() { Container c = getContentPane(); JPanel jp1 = new JPanel(); JLabel jl1 = new JLabel("输入路径"); lujin = new JTextField(15); JButton xuanz = new JButton("选择"); jp1.add(jl1); jp1.add(lujin); jp1.add(xuanz); c.add(jp1, BorderLayout.NORTH);
2
1 设计时间
2011 年 6 月 8 号
2 设计目的
通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用 Java 语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际 问题的能力,提高学生的要求:采用图形用户界面,建立菜单 (1)给定任意一个文本文件,进行加密,生成另一个文件。 (2)对加密后的文件还原。
软 件 学 院
课程设计报告书
课程名称 设计题目 专业班级 学 姓 号 名
面向对象程序设计 加密与解密
指导教师
2011 年
6 月
1
目录
1 设计时间 ............................................................................................................................................. 3 2011 年 6 月 8 号 .................................................................................................................................... 3 2 设计目的 ............................................................................................................................................. 3 3 设计任务 ............................................................................................................................................. 3 4 设计内容 ............................................................................................................................................. 3 4.1 4.2 4.3 设计题目 ............................................................... 3 功能实现 ............................................................... 3 程序模块 ............................................................... 3
public void shuchu() { try { FileOutputStream out = new FileOutputStream(f); byte buf[] = nr.getText().getBytes(); try { out.write(buf); out.flush(); out.close(); } catch (IOException e) {} } catch (FileNotFoundException e) {} }
4.4 程序页面 ............................................................... 4 4.5 程序源代码 ............................................................. 6 5 总结与展望 ....................................................................................................................................... 13 参考文献 ............................................................................................................................................... 13 成绩评定 ............................................................................................................................................... 14
JPanel jp3 = new JPanel(); JButton queding = new JButton("确定"); jp3.add(qu); jp3.add(xie); jp3.add(queding); jp4.add(jp3);
c.add(jp4, BorderLayout.SOUTH); queding.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { jian(); if (qu.isSelected()) shuchu(); if (xie.isSelected()) qu(); } });
9
nr.setText("无法解密"); } } });
jiami.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { AA a = new AA(nr.getText()); key.setText(a.shu + ""); try { ObjectOutputStream output = new ObjectOutputStream( new FileOutputStream(lujin.getText())); output.writeObject(a); output.flush(); output.close(); qu(); baocun(); } catch (Exception e) { nr.setText("请选择加密文件保存地址,文件不存在或者无法加密文件 ,加密文件 不能含有换行"); } } }); setLocation(300,300); setSize(380, 350); setVisible(true);
xuanz.addActionListener(new ActionListener() {
8
public void actionPerformed(ActionEvent event) { JFileChooser fileChooser = new JFileChooser(); // 实例化文件选择器 fileChooser .setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); // 设置文件 选择模式,此处为文件和目录均可 if (fileChooser.showOpenDialog(Key.this) == JFileChooser.APPROVE_OPTION) { // 弹出文件选择器,并判断是否点击了打开按钮 String fileName = fileChooser.getSelectedFile() .getAbsolutePath(); // 得到选择文件或目录的绝对路径 lujin.setText(fileName); } } });
相关文档
最新文档