目录
目录 ...................................................................................................................................................................... 0 一 绪论 ................................................................................................................................................................ 1
1.1目的与意义 ........................................................................................................................................... 1 1.2功能 ....................................................................................................................................................... 1 1.3特点 ....................................................................................................................................................... 1 1.4环境 ....................................................................................................................................................... 1 第二章 功能需求分析 ........................................................................................................................................ 2
2.1目前的相关问题 ................................................................................................................................... 2
2.11社会和技术背景 ......................................................................................................................... 2 2.12目前的发展状况 ......................................................................................................................... 2 2.13客户目前的现状 ......................................................................................................................... 2 2.2客户或功能需求分析: ....................................................................................................................... 3 2.3系统运行的软硬件环境: ................................................................................................................... 3 2.4系统具体的功能要求: ....................................................................................................................... 3 第三章 系统设计 ................................................................................................................................................ 4
3.1采用的软件及开发平台 ....................................................................................................................... 4 3.2总体框架 ............................................................................................................................................... 4 3.3详细设计 ............................................................................................................................................... 4 第四章 技术实现 ................................................................................................................................................ 5
4.1主要功能模块的具体实现 ................................................................................................................... 5 4.2主要技术问题或难题的解决方法 ....................................................................................................... 5 4.3亮点或创新点的实现 ........................................................................................................................... 6 第五章 小结与体会 ............................................................................................................................................ 6 第六章 参考文献 ................................................................................................................................................ 7 第七章 附录 ...................................................................................................................................................... 10 第八章 成绩评定表 .......................................................................................................................................... 10
常熟理工学院课程设计报告
一 绪论
1.1目的与意义
通过对visual basic6.0 的使用,巩固了 visual basic 课程所学习的内容,训练熟练使用visual basic 6.0的基本方法和技巧。提高学生运用所学知识解决问题的能力,达到严谨工作科学的研究的素质。通过综合例题的训练,巩固前面所学的知识,并做到综合运用,在思维上是一次质的飞跃。训练学生使用该软件编写程序,对该软件熟练掌握,以达到学以致用的目的。
每个人都有一些不希望别人看到的东西,例如学习计划、日记等等,所以就特别希望能够使自己的东西只有自己能看懂,因此文件的加密与解密就应运而生了。它可以让我们的生活邓更加精彩。
1.2功能
该程序能对包含数字、大小写字母、空格、汉字,还有一般会使用得到的字符的txt文件进行加密与解密,你可以随便输入,而我的程序绝对能够帮助你保守秘密。特别指出的是对汉字的加密与解密功能。
1.3特点
此程序不仅能对字母和数字进行加解密,更是可以对汉字进行加解密。并有清除与结束按钮,能更方便的对程序进行操作。在按清除键后并使文本框1得到焦点。
1.4环境
该程序可以在 windows95、windows98、windows98 se、windows me、windowsnt4.0、 windows2000、windows XP、 windows2003 server环境下使用。
1
常熟理工学院课程设计报告
第二章 功能需求分析
2.1目前的相关问题
2.11社会和技术背景
早在公元前400年,斯巴达人就发明了“塞塔式密码”,这就是我们所说的传统密码技术 。即把长条纸螺旋形地斜绕在一个多棱棒上,将文字沿棒的水平方向从左到右书写,写一个字旋转一下,写完一行再另起一行从左到右写,直到写完。解下来后,纸条上的文字就是密文。这是最早的密码技术。古代的密码术可以大致别分为两种,即易位和替换,当然也有两者结合的更复杂的方法。在易位中字母不变,位置改变;替换中字母改变,位置不变。 因此,为了使密码有更高的安全性,单字母替换密码就出现了。
特别是在现代社会,更是需要更加保密的加密方法来对自己的文件进行加密操作,使别人不能看到自己的隐私。
为了使自己的东西达到保密状态,大家在苦苦追寻着一种既能加密又能解密的这样一类简单实用的程序。因此,我选择了这个课题——文件的加密与解密。 2.12目前的发展状况
随着信息社会的到来,人们在享受信息资源所带来的巨大的利益的同时,也面临着信息安全的严峻考验。信息安全已经世界性的现实问题,信息安全问题已威胁到国家的政治、经济、军事、文化、意识形态等领域,同时,信息安全问题也是人们能否保护自己的个人隐私的关键。信息安全是社会稳定安全的必要前提条件。
目前有很多使用c语言,c++甚至java来编写文件的加密与解密的程序的,随着网络的发展,这类程序随处可见。但我们使用的VB语言是非常简单且容易操作的。我们可以通过VB的课程设计来了解现代社会,为以后能够设计出高深的程序打下坚实的基础。
2.13客户目前的现状
目前,网络技术的飞速发展,信息技术的飞速发展,使人们的生活面貌发生了很大改
2
常熟理工学院课程设计报告
变,同时信息技术也促进了社会的发展。网络在给人们带来方便的同时也给人们带来了许多意想不到的麻烦。所以当前对于文件的加密与解密的要求也显得十分重要。各个国家,甚至是个人都在运用安全等级不同的安全措施对比较重要的文件进行加密,以此来保证文件的安全。因此对于这种技术的发展与提高也显得极其的重要。互联网是一个面向大众的开放系统,对于信息的保密措施和系统的安全性考虑得并不完备,由此引起的网络安全问题也就日益严重。如何保护计算机信息的内容,也即信息内容的保密问题显得越来越重要
大家使用各类加密解密软件或程序来进行加密和解密,也非常迫切需要能有这样一个简单易懂的程序来达到自己的目的。
2.2客户或功能需求分析:
随着社会的不断发展与进步,越来越多的人担心自己的文件被他人偷窥,尤其是网络的广泛使用更加使人们担心这种问题,因而迫切需要对重要文件进行加密和解密。大家都希望一定的加密软件,可以帮助自己很好的对资料进行保护。此软件需要简单好用但是必须对文件的加密与解密有很好的保护功能。而且需要此软件能够对字母、数字和汉字进行加密操作。
2.3系统运行的软硬件环境:
我是在Windows2000和Visual basic6.0 环境下编写程序的,现在可以在windows95、Windows98、Windows98 SE、Windows me、WindowS nt4.0、 Windows2000、Windows XP、Windows2003 Server环境下使用。
2.4系统具体的功能要求:
该程序可以在 Windows95、Windows98、Windows98 SE、Windows Me、WindowSnt4.0、 Windows2000、Windows XP、 Windows2003 Server环境下使用。能够对客户所有的文件进行加密与解密操作,具有一定的技术要求。此软件正好解决了这个问题,它可以对包括字母、数字、汉字及一些符号进行加解密。在一定范围内能够好很好满足客户的需求。
3
常熟理工学院课程设计报告
第三章 系统设计
3.1采用的软件及开发平台
我是在windows2000和windows XP环境下,使用visual basic6.0软件编写的程序。
3.2总体框架
窗体上放置了三个标签、三个文本框、以及五个命令按钮,在文本框内输入或加载原
文,单击命令按钮即可实现加密和解密程序的操作。
3.3详细设计
我编写的程序使用了命令按钮操作对程序进行控制。一共使用了五个命令按钮,这些命令按钮很好很方便的可以对各个操作进行控制,很好的将用户与软件结合为一体化。在文本框中不仅可以直接输入密文,还可以打开指定的文件对其进行加密解密。
这个程序的加密与解密方法如下:
4
常熟理工学院课程设计报告
定义两个数组,将其中一个数组的首字符转化为ASCLL码值,然后用一个MID函数进行取值,再是对其进行XOR运算,接着是把返回值装换为字符,依次循环,直到将所有的密文循环用完,最后是用一个连接运算,将其返回值输出到Texy2中。解密运算时与加密运算的逆运算,其中间过程与加密程序一样,最后也是将连接运算的返回值输出到Text3中。这就是此程序的加密、解密过程的代码。
第四章 技术实现
4.1主要功能模块的具体实现
在打开文件的方面我主要是加了一个对话框控件,然后是对其的一些特性进行编辑。然后是一个清除按钮,并且在清除之后可以让文本框1得到焦点,方便以后的操作。接着是两个加解密命令按钮,加解密是通过程序
i = 0
pwd = Text1.Text n = Len(pwd)
ReDim oByte(0 To n - 1), temp(0 To n - 1) Do While i < n
oByte(i) = Asc(Mid(pwd, i + 1, 1)) oByte(i) = 21 Xor oByte(i) temp(i) = Chr(oByte(i)) i = i + 1 Loop
Text2 = Join(temp, \"\")
完成的,解密的程序只要与加密的程序反过来即可实现,所以整体来讲还是比较方便的。
4.2主要技术问题或难题的解决方法
刚开始主要的问题是对菜单编辑器的使用不够熟练,于是下了课之后我就把我们上课使用的vb课本中的第八章、第九章以及后面的文件操作的实验部分给看了一下以使自己能够有理论上的知识,到了上课的时候又多加练习了几遍也就熟练了。
第二个问题就是开始时所编写的程序只能对26个字母以及空格进行加密与解密,范围太窄。为了解决这个问题,开始寻找新的程序来对包括汉字的加解密,于是找到这段让我费了很久才看明白的程序,不过此程序真的很好用,它不仅可以对字母,数字进行加密,更是可以对汉字进行加解密操作。
5
常熟理工学院课程设计报告
后来问题又出来了,程序在关掉后重新启用的时候,那个打开原文的按钮就不能用了,进过一番反复的操作和调试,知道了原来诗词按钮不在基本的按钮里面,操作的时候需要重新将其加入才能打开原文。不过只要在打包的时候添加进去就行了,以后就不会出现此类问题了。
不过还有一个问题没有解决,那就是如果有两个空格的话,程序操作的时候会有一个空格变成数字“3”,我想我会将其解决的。
4.3亮点或创新点的实现
我的亮点是我的程序不仅可以对字母和数字进行加解密,而且能够对汉字进行加解密,并且能够无限次进行加密、解密运算,而且对文件的加解密更是很方便,此程序所能够进行加解密的文件类型主要是文本文档和压缩包文件,
第五章 小结与体会
利用了暑假的这个短学期,进行了vb课程设计,我们在老师的指导下,结合自己的兴趣爱好,我选择了“文件加密、解密”这个程序设计课题,此课题主要要用到熟练的对文件控件进行操作。
自己动手动脑编写代码,进行界面设置,虽然我编写的程序不算复杂,但经过自己的努力并且由自己将代码一句句输入,然后试着运行,直到能够正确运行为止,每一句代码都是自己的劳动成果,为此我感到很有成就感,这证明了我这一学期的学习成果以及这几天的课程设计所获得的以后将会受用终身。
通过这次课程设计不仅仅使我巩固了以前学的知识,而且我还学会了如何用自己已有的知识来解决不熟悉的问题。通过这次课程设计,很好的锻炼了自己的动手能力,以及对VB的操作能力。
也许这次课程设计所涉及到的大部分是我们学过的内容,但通过这次的课程设计,使我对visual basic 6.0 有了新的认识,一直以来我都进入了一个误区,认为学习visual basic 语言没有多大的作用,然而通过这次课程设计,我知道了我们可以利用 visual basic 语言来达到自己的目的,例如用它来控制电路的闭合与断开。这些以前我都没有意识到,虽然我们也编写了不少的程序,然而却都跟我们的生活、学习没有太大的联系,因而也就不知
6
常熟理工学院课程设计报告
道它的作用了。现在既然我已经知道 visual basic 语言对我们有如此大的作用,我就要学好它。
我想这次课程设计,有一点是不能不说的。就是程序在关掉后重新启用的时候,那个打开原文的按钮就不能用了,进过一番反复的操作和调试,知道了原来诗词按钮不在基本的按钮里面,操作的时候需要重新将其加入才能打开原文。不过只要在打包的时候添加进去就行了,以后就不会出现此类问题了。我觉得这不能不说是一次飞跃,也许在别人看来这个问题很简单,然而我开始只是觉得这太难了,我根本不知道是哪里出现了问题,然而事实证明我可以做得到。因此从这个事实中我懂得了没有什么自己经过努力做不到的,有句话说得好“世上无难事,只怕有心人”就像我这样,刚开始就把它想得如登天一般困难,自己自然不能够做到,没试过就不要说不可以,这是我从中学到的最有用的东西,我想课程设计不仅仅是要让我们学到关于这门课的专业知识吧,也许还希望我们能学到更多的课本上没有的知识,像这样的事情也许有人说书上也有,然而不经过自己的亲身经历是不可能记得住的。
总而言之,这次课程设计我的收获还是不小的,我从中所学到的衣襟不仅仅局限于课本知识,那是需要你真正的运用到社会实践中去的,只有不懈的努力,才能克服种种难题,最后能够让自己满意。
第六章 参考文献
1. 张玉生.Visual basic程序设计教程(M).中国电力出版社,2008 2. 张玉生.Visual Basic程序设计实验指导.中国电力出版社,2008
3. scholarw.VB加解密类(EB/OL). http://download.csdn.net/source/484268.2009.4.7
第七章 附录
1.文中所提到的vb即visual basic 2. 源代码 Option Explicit
Private Sub Form_Load()
7
常熟理工学院课程设计报告
End Sub
Text1.Text = \"\" Text2.Text = \"\" Text3.Text = \"\"
Private Sub Command1_Click() Text1.Text = \"\" Text2.Text = \"\" Text3.Text = \"\" Text1.SetFocus End Sub
Private Sub Command2_Click()
Dim n As Integer, i As Integer, pwd As String, oByte() As Integer, temp() As String
i = 0
pwd = Text1.Text n = Len(pwd)
ReDim oByte(0 To n - 1), temp(0 To n - 1) Do While i < n
oByte(i) = Asc(Mid(pwd, i + 1, 1)) oByte(i) = 21 Xor oByte(i) temp(i) = Chr(oByte(i)) i = i + 1
Loop End Sub
Private Sub Command3_Click()
Dim n As Integer, i As Integer, pwd As String, oByte() As Integer, temp() As String
i = 0
pwd = Text2.Text n = Len(pwd)
ReDim oByte(0 To n - 1), temp(0 To n - 1)
8
Text2 = Join(temp, \"\")
常熟理工学院课程设计报告
Do While i < n
oByte(i) = Asc(Mid(pwd, i + 1, 1)) oByte(i) = 21 Xor oByte(i) temp(i) = Chr(oByte(i)) i = i + 1 Loop
Text3 = Join(temp, \"\") End Sub
Private Sub command4_Click()
Dim a As String Text1.Text = \"\"
CommonDialog1.FileName = \"\"
CommonDialog1.Filter = \"all files |*.*|(*.exe)|*.exe|(*.txt)|*.txt\" CommonDialog1.DialogTitle = \"打开原文\" CommonDialog1.Action = 1
If CommonDialog1.FileName = \"\" Then MsgBox \"没有选择文件\检查\" Else
Open CommonDialog1.FileName For Input As #1 Do While Not EOF(1) Line Input #1, a$
Text1.Text = Text1.Text + a$ + vbCrLf Loop Close #1 End If End Sub
Private Sub Command5_Click()
End End Sub
9
常熟理工学院课程设计报告
第八章 成绩评定表
课程设计独创性声明: 学生签名: 指导教师评语
课程设计成绩: 指导教师签名:
教研室意见: 教研室主任签名: 10
因篇幅问题不能全部显示,请点此查看更多更全内容