Java课程设计(论文)凯撒加解密程序

上传人:无*** 文档编号:42025069 上传时间:2021-11-24 格式:DOC 页数:18 大小:180.50KB
收藏 版权申诉 举报 下载
Java课程设计(论文)凯撒加解密程序_第1页
第1页 / 共18页
Java课程设计(论文)凯撒加解密程序_第2页
第2页 / 共18页
Java课程设计(论文)凯撒加解密程序_第3页
第3页 / 共18页
资源描述:

《Java课程设计(论文)凯撒加解密程序》由会员分享,可在线阅读,更多相关《Java课程设计(论文)凯撒加解密程序(18页珍藏版)》请在装配图网上搜索。

1、攀枝花学院本科学生课程设计任务书题目凯撒加解密程序1、课程设计的目的通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)实现一个凯撒加解密程序,要求:(1) 能够实现用指定的密钥对明文进行加密。(2) 能够实现用指定的密钥对密文进行解密。(3) 要求具有保存明文和密文的功能。(4) 能对密文进行破解。(可选)(5) 界面可以是控制台方式也可以是图形方式。3、主要参考文献1朱福喜.Java语言程序设计(第二版).科学出版社2陈国君等.Java程序设

2、计基础(第二版).清华大学出版社3 Deitel.Java大学基础教程(第六版).电子工业出版社 4 MaryCampione.Java语言导学(第四版).机械工业出版社5 Y.Daniel Liang.Java语言程序设计基础篇(第六版). 机械工业出版社6 Kathy Sierra.Head First Java(第二版).东南大学出版社4、课程设计工作进度计划序号时间(天)内容安排备注11分析设计准备周一22编程调试阶段周二至周三31编写课程设计报告周四41考核周五总计5(天)指导教师(签字)日期年 月 日教研室意见:年 月 日学生(签字): 接受任务时间: 年 月 日课程设计(论文)指

3、导教师成绩评定表题目名称 凯撒加解密程序评分项目分值得分评价内涵工作表现20%01学习态度6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能力水平35%04综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5能正确

4、设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力。成果质量45%09插图(或图纸)质量、篇幅、设计(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指

5、导教师评语指导教师签名: 年月日 摘 要计算机与网络技术的发展将人类带入信息化社会,随之而来的是倍受关注的信息安全问题。现代密码学已成为信息安全技术的核心技术。加解密算法,成为重要的信息安全防护技术,正是现代密码学的主要应用研究成果。其中,凯撒密码作为一种最为古老的对称加密体制,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。凯撒密码加解密是一种典型的对称加密算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。大多数对称算法中,加、解密的密钥是相同的,这些算法也称为秘密密钥算法或单密钥算法。它要求发送者和接收者在安全通信之前,商定一个密钥。在加解密时密钥的保护尤为重要,如果第三

6、方知道就会造成信息失窃,所以,在算法设计时要做详细的分析。此外,文章中还说明了凯撒密码产生的背景,如何完成加解密,并分析了凯撒密码加解密的优缺点。关键词:凯撒密码,文件加密,防护技术目 录摘 要I目 录II1前言11.1背景11.2开发工具12 加密的概念、理由及方法32.1加密的概念32.2加密的理由32.3加密的方法33 设计简介及设计方案论述53.1 需求分析53.2总体设计框架53.3信息加密技术简介53.3.1加密解密技术摡述63.3.2加密算法64 详细设计74.1流程图74.2加密解密界面设计75 设计结果及分析85.1 设计结果展示85.2 设计结果分析及说明85.3 源程序9

7、6 心得12参考文献13II 1前言1.1背景由于信息的安全保护问题已经显得十分突出,信息保护的现实需要,使得数据加密算法和技术迅速进入了现代社会,了解并有效使用数据加密算法技术已成为计算机技术和通信领域的专业技术人员和广大用户的迫切需求,这是信息化社会发展阶段的重要标志,数据库加密也是信息安全必不可少的安全手段。而密码则可以有效而且可行的保护信息安全的办法,有效是指密码能够做到使信息不被非法窃取,不被篡改或破坏,可行是说它需要付出的代价是可以接受的。如今数据的加密解密技术已随着计算机技术的迅猛发展,由早期的军事和外交领域,逐步伸展到交通、工业经济、科学技术、社会安全和公共生活的各个领域,成为

8、现代社会中保护信息的重要手段和工具。因此密码学的研究就成为一个重要的来解决信息安全问题的一种手段了,而且有着重要的地位。在信息时代,信息可以帮助团体或个人,使他们受益,同样,信息也可以用来对他们构成威胁,造成破坏。在竞争激烈的大公司中,工业间谍经常会获取对方的情报。密码技术是保护信息安全的主要手段之一。密码技术世界和数学,计算机科学,电子与通信等诸多学科于一身的交叉学科。他不仅具有信息加密功能,而且具有数字签名,身份验证,秘密分存,系统安全等功能。所以使用密码技术不仅可以保证信息的机密性,而且可以保证信息的完整信和正确性,防止信息被篡改,伪造或假冒。随着我国愈来愈现代化,使用密码的频率会愈来愈

9、多,这就促使了数据加密技术的发展。1.2开发工具此次课程设计采用的开发环境是J2EE,所选用的开发语言是java。这种开发工具和开发语言都是当今比较流行的。Java EE是建立在Java平台上的企业级应用的解决方案。Java EE的技术基础是Java,它不但拥有Java SE(Java标准版)平台的所有功能,同时还提供了对EJB、Servlet、JSP、XML等企业级技术的全面支持,形成了一个开发健壮且可移植的企业级应用系统的完整体系结构。Java EE并非一个单独的产品,而是由Sun公司提供的一系列标准组成,这些标准定义了Java EE各个组件的借口和其他一些规范。很多厂商,包括Sun公司在

10、内,都依据Java EE提供的规范提供了Java EE的实现或产品,因此企业级系统可以在这些不同的产品之间方便地移植。Java EE目前得到了广泛的应用。其优势主要是为搭建具有可伸缩性、灵活性、易维护性的业务系统提供了良好的机制。其优势主要包括:高效的开发:Java EE使得开发者把一些通用的、很繁琐的服务器端任务交给中间件供应商(例如IBM、Sun、BEA)去完成,这样开发人员可以集中精力在如何创建业务逻辑上,相应地缩短了开发时间;支持异构环境:Java EE能够开发部署在异构环境中的可移植程序。基于Java EE的应用程序不依赖任何特定操作系统、中间件、硬件,因此设计合理的基于Java E

11、E的只需开发一次就可部署到各种平台;保存显存的IT资产:由于基于Java EE平台的产品几乎能够在任何操作系统和硬件配置上运行,因此Java EE架构可以充分利用用户原有的资产进行开发;可伸缩性:Java EE领域的提供商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署。实现可高度伸缩的系统,满足未来商业应用的需要。MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JS

12、F, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开元产品的专属eclipse开发工 具。2 加密的概念、理由及方法 2.1加密的概念数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。2.2加密的理由当今网络社会选择加密已是我们别无选择,其一是我们知道在互联网上进行文件传输、电子

13、邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传输。而且这种不安全性是互联网存在基础TCP/IP协议所固有的,包括一些基于TCP/IP的服务;另一方面,互联网给众多的商家带来了无限的商机,互联网把全世界连在了一起,走向互联网就意味着走向了世界,这对于无数商家无疑是梦寐以求的好事,特别是对于中小 企业 。为了能在安全的基础上大开这通向世界之门,我们只好选择了数据加密和基于加密技术的数字签名。加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃取。一个简单的例子就是密码的传输,计算机密码极为重要,许多安全防护体系是基于密码的,密码的泄露在某种意义上来讲意味着其安

14、全体系的全面崩溃。通过网络进行登录时,所键入的密码以明文的形式被传输到服务器,而网络上的窃听是一件极为容易的事情,所以很有可能黑客会窃取得用户的密码,如果用户是Root用户或Administrator用户,那后果将是极为严重的。总之无论是单位还是个人在某种意义上来说加密也成为当今网络社会进行文件或邮件安全传输的时代象征!2.3 加密的方法传统的加密算法主要分为两大类:替代密码和换位密码。替代密码使用一组密文字母代替一组明文字母以隐藏明文,但保持明文字母的位置不便。替代密码又可细分为单表替代密码(凯撒密码)和多表替代密码(费杰尔算法)。换位密码是采用移位法进行加密的。他把明文的字母重新排列,本身

15、不变,但位置变了。换位密码又可细分为列换位法和矩阵换位法。传统加密的好处就是加密模型是稳定的,是人们所共知的,从而适用于各个行业的加密。但由于数据加密解密技术的快速发展,破解技术的不断发展和计算机整体性能的不断提升,破解传统加密已经很快了。所以传统加密算法已不能满足通信的需要,但传统加密奠定的历史基础是务须质疑的,并且在过去带来了很大帮助。传统加密算法发展的趋势是和公钥加密算法结合,达到既有对称加密算法的优势由有公钥加密算法的优势。传统加密的基本过程是:用户A生成一对密钥并将其中的一把作为公开密钥向其他用户公开;得到该公开密钥的用户B使用该密钥对机密信息进行加密后再发送给用户A;用户A再用自己

16、保存的秘密密钥对加密后的信息进行解密。用户A只能用其秘密密钥解密由其公开密钥加密后的任何信息。 3 设计简介及设计方案论述3.1 需求分析随着我国对计算机的普及,计算机和通信技术已经在我国得到了广泛发展及应用,从而使我们对信息的安全存储、安全处理和安全传输的需要越来越迫切。密码是有效而且可行的保护信息安全的办法,有效是指密码能够做到使信息不被非法窃取,不被篡改或破坏,可行是说它需要付出的代价是可以接受的。因此我设计一个字符的加密解密工具来保护信息安全。此工具要求通过将字符拖入相应的界面从而实现相应的凯撒加密解密功能,主界面中有三个标签分别为“加密”、“解密”,用于实现文件的加密和解密。可以选择

17、用于加密的算法进行不同的字符串加密或解密。3.2总体设计框架根据系统的设计要求,设计的系统功能模块如图3-1所示。 输入要解密字符以及k值得到解密后结果将所得字符向前移动k个单位输入要加密字符以及K值得到加密后结果将所得字符向后移动k个单位 图3-13.3信息加密技术简介在信息时代,信息可以帮助团体或个人,使他们受益,同样,信息也可以用来对他们构成威胁,造成破坏。在竞争激烈的大公司中,工业间谍经常会获取对方的情报。密码技术是保护信息安全的主要手段之一。密码技术世界和数学,计算机科学,电子与通信等诸多学科于一身的交叉学科。所以使用密码技术不仅可以保证信息的机密性,而且可以保证信息的完整信和正确性

18、,防止信息被篡改,伪造或假冒。随着我国愈来愈现代化,使用密码的频率会愈来愈多,这就促使了数据加密技术的发展。3.3.1加密解密技术摡述所谓加密,就是把称为“明文”的可读信息转换成“密文”的过程;而解密则是把“密文”恢复为“明文”的过程。加密和解密都要使用密码算法来实现。密码算法是指用于隐藏和显露信息的可计算过程,通常算法越复杂,结果密文越安全。在加密技术中,密钥是必不可少的,密钥是使密码算法按照一种特定方式运行并产生特定密文的值。1使用加密算法就能够保护信息安全使之不被窃取、不被篡改或破坏。可把加密算法看作一个复杂的函数变换,x=(y,k)x代表密文,即加密后得到的字符序列,y代表明文即待加密

19、的字符序列,k表示密钥,当加密完成后,可以将密文通过不安全渠道送给收信人,只有拥有解密密钥的收信人可以对密文进行解密即反变换得到明文。3.3.2加密算法对称算法又叫做传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加/解密密钥是相同的。这些算法也叫秘密密钥或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。只要通信需要保密,密钥就必须保密。算法主要分为两步:初始置换和逆置换。凯撒加解密是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。 图3-24 详细设计4.1流程图 图4-14.2加密解密

20、界面设计public void Menu()/简单的选择页面 Jf=new JFrame("凯撒密码"); Jp=new JPanel(); but1=new JButton("加密"); but2=new JButton("解密"); Jp.add(but1);but1.addActionListener(this); Jp.add(but2);but2.addActionListener(this); Jf.add(Jp); Jf.setSize(300,200); Jf.setVisible(true); 5 设计结果及分析5.

21、1 设计结果展示实验完成后可以进行调试,本程序是在Myeclipse环境中编写,进行调试后最终实验了基本的文件加密解密的功能。最终的实现结果以用户界面的现实呈现给用户。用户界面模块是实现用户与计算机信息交换以直接形象、操作简便呈现在用户面前,在该加密解密工具中拥有的界面如下: 图5-15.2 设计结果分析及说明设计中主要使用的是对称加密算法,因此该工具可以同时利用对称加密解密算法对字符串进行加密对所生成的密文文件进行解密,对于加密解密前后字符串的内容完全一致。当需要加密某个字符串时,只需要在图形界面中点击加密,再输入要加密的字符串根据算法来实现加密。同样在进行字符串的解密时我们只需将于需要只需

22、要在图形界面中点击解密,将要解密的字符串输入,就可以得到相应的解密字符串。两次密码,当两次密码输入相同时,才能实现相应的加密解密功能。当输入密码不正确时,该工具会进行报错。解密时也是一样,只有正确的输入密码才能解密,否则会提示出错。在进行加密解密时我设置了一个进度条,用来观察加密解密的进度从而判断该工具是否运行正常.结果如下图所示:图5-25.3 源程序package test;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;import javax.swing.*;

23、import java.awt.*;public class l extends java.applet.Applet public static void main(String args) Exam_exam01 ee=new Exam_exam01(); ee.Menu(); class Exam_exam01 extends JFrame implements ActionListenerprivate static final long serialVersionUID = 1L; JFrame Jf; JPanel Jp; JButton but1,but2; public voi

24、d Menu()/简单的选择页面 Jf=new JFrame("凯撒密码"); Jp=new JPanel(); but1=new JButton("加密"); but2=new JButton("解密"); Jp.add(but1);but1.addActionListener(this); Jp.add(but2);but2.addActionListener(this); Jf.add(Jp); Jf.setSize(300,200); Jf.setVisible(true); public void actionPerform

25、ed(ActionEvent e)/事件处理 if(e.getSource()=but1) Cipher(0); if(e.getSource()=but2) Cipher(1); public void Cipher(int iNum)/凯撒密码 加密解密 try char b;/存放密文 BufferedReader br2=new BufferedReader(new InputStreamReader(System.in); if(iNum=0)System.out.println("请输入一段明文和密钥:"); if(iNum=1)System.out.print

26、ln("请输入一段密文和密钥:"); String str2=br2.readLine(); b=str2.toCharArray(); if(iNum=0)System.out.println("密文为:"); int k=7; for(int i=0;i<str2.length();i+) char ch=(char)(bi-'a'+k)%26+'a');/此处写“(bi-'a'-1)%26+'a')”也行 System.out.print(ch); System.out.prin

27、tln(" 密匙K="+k); if(iNum=0)System.out.println("请在以上结果为密文"); if(iNum=1)System.out.println("明文为:"); int c=7; for(int i=0;i<str2.length();i+) char ch=(char)(bi-'a'-c)%26+'a');/此处写“(bi-'a'-1)%26+'a')”也行 System.out.print(ch); System.out.prin

28、tln(" 密匙K="+c); if(iNum=1)System.out.println("请在以上结果为明文"); catch(IOException e) System.out.println(e.getMessage(); 6 心得我们知道加密算法的一般类型有对称和非对称两种。对称算法使用相同的密钥来加密和解密数据。非对称算法使用一个公钥进行加密,而使用另一个密钥来解密。凯撒加解密 算法是加解密算法的一种选择。它最灵活的选择之一是使用对称加密。在这种技术中,加密和解密使用相同的密钥。公钥加密的最大缺点是其性能较差。对称算法对处理能力的要求比公钥算法

29、低得多。如果只是使用加密方法,则不必详细了解其工作原理;但如果要对凯撒加解密算法进行设计,则需要我们考虑以下三个主要因素:破解使用该算法加密的消息的难度; 算法的性能 ;密钥的安全性。 论文对凯撒加解密算法进行了分析与研究,了解了怎样的密码体制才能充分发挥凯撒加解密算法的安全作用。分析了凯撒加解密的安全性,以及如何选取凯撒加解密时的密钥长度的问题。同时考虑到在实际的应用过程中,在满足安全性前提下应当降低计算的复杂度,提高信息加、解密的速度。为了得到较快的加/解密速度,主要采用移位的方法,大大提高了凯撒加解密算法实际应用的运算速度和执行效率。    以上详

30、细介绍了凯撒加解密字母的实现方法,同时,也介绍了采用加解密密码方式以后,以及用户鉴别的实现。并讨论了使用这种加解密方式的应用限制。在实际应用中,我们可以将此方法做适当的修改和补充,以更加适合我们的应用需要。 这次课程设计让我学到了很多,不仅是巩固了先前学的程序设计知识,而且也培养了我的动手能力,更令我的创造性思维得到拓展。参考文献1朱福喜.Java语言程序设计(第二版).科学出版社2陈国君等.Java程序设计基础(第二版).清华大学出版社3 Deitel.Java大学基础教程(第六版).电子工业出版社 4 MaryCampione.Java语言导学(第四版).机械工业出版社5 Y.Daniel Liang.Java语言程序设计基础篇(第六版). 机械工业出版社6 Kathy Sierra.Head First Java(第二版).东南大学出版社7陈 运信息加密原理M成都:电子科技大学出版社,19908张 周我国企业开始重视网络安全J计算机世界A9版2000,(3)9张文政,孟庆志通信保密技术J计算机应用1998,(6):252813

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!