1、 西安财经学院公文流转系统的设计与实现论文摘要随着信息技术在我国的普及,各类信息技术不断的应用于各单位中,极大的提高了办公效率。过去的公文处理过程十分复杂,经常由于个人原因对公文管理不当,导致公文丢失或未及时审批。因此,需要开发公文流转系统,让工作人员从复杂的公文处理事务中解放出来,从而提高工作效率,降低成本,实现办公自动化。本文先从公文流转的定义入手,分析了该系统的背景,研究意义及发展趋势;其次,从该系统的需求分析和可行性分析入手对该系统进行全面分析;再次,通过设计思路对该系统各功能模块进行设计;最后,对该系统的实施进行了阐述。该系统基于B/S结构,采用JSP为编程语言,SQL Server
2、 2000作为后台数据库进行开发设计,重点介绍了公文流转系统相关技术的设计与实现。关键词:公文流转 B/S结构 办公自动化 管理Design and Development of Document Flow SystemAbstractAlong with the popularizationg of information technology in our country, each kind of information technology method has been applied unceasingly, which enormously enhanced the office
3、 efficiency. Traditional document processing process is very complex, some situation occurs such as documents lost or delay of documents reviewing because of improper management of personal documents. Therefore, it has been needed to develop the document flow system, which can liberate the people fr
4、om the long-term numerous and diverse work, enhance the working efficiency, reduce the cost and realize the office automation. This paper begins with the definition of the document flow, analysis background of the system, the research significance and development trends; secondly, from the needs ana
5、lysis and the feasibility analysis of the system to conduct a comprehensive analysis of the system; again, through the design ideas to design the various functional modules; finally, the implementation of the system are described. The system is based on B/S structure, uses JSP as the programming lan
6、guage, SQL Server 2000 is the backstage database of the sysytem is used to help designing and developing the system, the focus on the overall design planning of the document flow system.Keywords: Document Flow B/S structure Office automation Management4目录序言1一、系统概述2(一)公文流转系统的概述21.公文流转的概念22.公文流转的特点2(二
7、)公文流转系统的背景2(三)公文流转系统的发展历程31.公文流转系统的现状32.公文流转系统的发展趋势4(四)公文流转系统的研究意义4二、系统的关键技术与关键算法6(一)开发环境61.JSP技术简介62.SQL Server2000数据库63.MyEclipse7(二)B/S模式分析7(三)MD5加密算法81.MD5加密算法描述82.MD5算法的原理93.MD5算法的实现94.MD5算法的安全性9(四)工作流技术101.公文流转系统中工作流的分析102.工作流的实现过程10(五)数字签名技术101.数字签名的实现112.数字签名的处理过程113.数字签名的安全性12(六)痕迹跟踪技术121.痕
8、迹跟踪技术的描述122.痕迹跟踪技术的实现123.痕迹跟踪技术的处理过程13(七)身份验证技术131.身份验证技术的设计思路142.身份验证技术的实现14三、系统分析15(一)需求分析151.技术需求分析152.功能需求分析153.性能需求分析16(二)可行性分析171.经济可行性172.技术可行性173.社会可行性17(三)系统业务流程分析171.手工业务处理流程172.新系统业务流程分析18(四)数据流程图181.顶层数据流程图192.二层数据流程图193.三层数据流程图20(五)数据字典211.数据流212.数据存储223.数据结构234.数据元素235.处理功能246.外部实体24四、
9、系统设计25(一)系统功能结构251.系统总体规划252.系统功能模块25(二)代码设计26(三)输入输出设计271.输入设计272.输出设计28(四)数据库设计281.概念结构设计292.逻辑结构设计303.物理结构设计30五、系统实施32(一)系统的运行环境和开发平台321.系统的硬件设备与操作系统322.系统开发平台32(二)系统主功能界面的实现32(三)系统开发中的成功与不足37六、系统测试38(一)测试原则38(二)测试的重要性及目的381.测试的重要性382.测试的目的39(三)测试方法39(四)测试过程39(五)测试用例401.用户登录测试412.添加用户测试41结论42致谢43
10、参考文献44附录45序言随着网络技术和信息技术的快速发展,各高校原有的办公模式已经无法满足学校的事务处理、信息共享等方面的要求,严重的影响了学校工作效率的提高和决策能力的发挥。日常各高校在公文处理的工作中往往会因为个人对文件的管理不当,而导致文件的遗失,过时还未审批,或者出差在外,无法及时审批等情况。传统的数据文件是一份份厚重的文件档案及纸制文件,要查询一份历史数据就要到文件的归档部门,通过归档年份再去查询这份数据,所以想要找到一份历史数据,即耗时又烦琐。因此,必须大力推进学校各部门的办公自动化、信息化和电子化,不断优化学校的公文流转系统,整合信息资源,全面实现学校的信息共享,搭建方便、快捷、
11、实用的工作平台,从而提高工作效率。可以说,公文流转系统是近一个阶段各高校信息技术应用开发的重点内容,设计一个公文流转系统,充分利用内部网络资源,实现公文的提交、审批、到达提醒、下载公文、归档管理和系统管理等功能是十分必要的。在计算机上审批处理公文,省略了现实中一些冗余的流转过程,便于文件的积累和再利用,利于公文审批流程的跟踪和公文共享的容易程度,同时也有利于历史文件的检索以及各部门文件的传输等,具有广泛的需求和广阔的市场前景。公文流转系统的市场具有很大的潜力,开发出具有实用性,先进性的公文流转系统,势必会赢得巨大的成功,将最大限度的提高企业、学校等单位的办公效率。本论文将以学校作为系统的开发对
12、象,将全面、细致、科学的对公文流转系统的业务流程和软件开发过程进行阐述。一、系统概述(一)公文流转系统的概述1.公文流转的概念公文流转系统就是利用网络传送工作文件,将工作流转化为电子信息流,实现发文、收文、签发、审批等行政事务信息化,它的目的在于推进各部门办公自动化、网络化、电子化,通过信息及通信技术的应用,改变目前各部门之间传统的手工公文流转方式,突破时间与地域限制,使成员之间真正通过电子化渠道进行沟通,提高工作效率,从而为进一步实现信息化打下良好基础。2.公文流转的特点公文流转系统作为基础性应用系统,是整个行政事务处理中最主要的工作。在企事业单位的日常办公业务中占有重要地位,传统的公文流转
13、模式主要以纸作为介质,为公文的传递、审批、下达、查询等带来了很多不便。在Web基础上的公文流转系统能根据用户提出的公文流程,对整个工作流程进行实时跟踪,对修改审核的信息进行记录,并能根据有关规定自动的报告公文在过程中的状态。它包括了公文的上传、审批、下达、查阅等环节,它是一种特殊的管理信息系统,其特殊性主要表现在以下四个方面:(1)公文流转系统处理的是公文,涉及的往往是一些非结构化数据,没有严格的长度规定,机构松散,类型多变,所以数据处理方式和其他系统有很大的不同,在办公流程中,不同的文档和事务都有不同的处理流程。(2)公文流转系统是集中式与分布式的混合应用。公文集中存储在服务器上,在应用程序
14、驱动下,在公文处理的各个环节流转。电子公文处理终端功能的要求也不统一,有些终端需要能支持在本地进行扫描、编辑等公文处理,这就应用的是分布式。有些只需要支持批阅公文,即是集中式,这种应用需要个人计算机与网络计算机的共容。(3)公文流转系统中公文的安全级别不同。公文流转中毕竟要流经许多的办公人员或办公部门。在这个过程中,每一个经手的人员或者部门的权限应该是有所不同的。同一篇公文中,针对某一个内容,可能这个部门可以阅览,而另一个部门却不行。所以在公文流转过程中针对不同层次、级别的办公人员而言,公文的保密程度不同,即使同一篇公文对同一层次的不同人员或者部门之间的保密程度也可能不同。(4)公文流转系统是
15、一种综合性的管理系统,工作人员之间的协同工作在系统处理过程中表现的尤为突出。公文流转过程中每个经手的人员或者部门的权限应该是有所不同的,即公文的安全级别不同。用户可以预先定义公文的处理流程及相应的处理权限,在公文流转过程中只有相应权限的人员才可以进行公文的在线处理。根据工作流的过程,最终完成公文的审批过程。在这个过程中,每个工作人员之间都应该协同工作1。(二)公文流转系统的背景在我国,管理信息系统是计算机应用最广泛的领域之一。随着科技发展和社会进步,管理科学化与管理手段的现代化已经提到非常重要的地位。计算机的应用逐渐由大规模科学计算的海量数据处理转向大规模的事务处理和对工作流的管理,这就产生了
16、以台式计算机为核心,以数据库管理系统为开发环境的管理信息系统,它应用于大规模的事务处理和对工作流的管理等方面。特别是在公文流转管理之中的应用日益收到人们的关注,各高校和企、事业单位为了提高自身的管理水平和工作效率,纷纷投入人力,物力来开发适合本单位需求的公文流转系统。近年来我国信息事业发展迅速。在信息化时代,手工管理方式在公文流转管理等需要大量事务处理的应用中已显得不相适应,高校应该积极利用办公自动化技术,加快知识信息的创造、加工、传播和应用。学校利用公文流转系统处理大量的日常事务,可以提高学校管理工作的效率。首先,借助公文流转信息化可以规范管理流程,使管理工作规范化、公开化;其次,通过使用公
17、文流转系统可以实现办公无纸化,从而节约大量的人力和物力;再次,公文流转系统可以对文档进行时时监控,能够及时发现和掌握工作中的问题,为领导的科学化管理提供可靠的依据。当今社会,企业公文信息是企业信息管理的一个重要的组成部分,而随着企业规模的不断扩大,企业的信息量也变得越来越大,企业的员工越多,公文流转的过程就越复杂,公文的审批处理过程也就越复杂。在过去的公文流转管理中,其过程往往是很复杂的,繁琐的,公文流转系统以公文的流转管理为核心,在此过程中又需要经过若干道手续,因为整个过程都需要手工操作,效率十分低下,且由于他们之间关联复杂,统计和查询的方式各不相同,且会出现信息的重复传递问题。随后在C/S
18、模式下开发的公文流转系统,虽然运行于企业内部局域网之间,但从运行时间和系统的稳定性来看,传统模式下的C/S管理系统存在种种隐患。传统的C/S管理系统需要安装于各个客户端计算机上,从维护和升级角度来看,工作量十分庞大,而且系统不易维护。如果能够实现企业的公文流转自动化,那么企业以后各部门的管理将变得很容易。通过以上描述,针对于不同单位,制定符合该单位的公文处理流程,基于B/S模式进行开发,建立安全、快捷、稳定、可靠的公文流转系统,从可行性方面分析,该系统完全可以实现无纸化办公目标。(三)公文流转系统的发展历程1.公文流转系统的现状目前我国公文流转系统的建设和应用水平都还处于初级阶段,随着企业信息
19、化基础设施的逐渐完善,各类信息系统开始得到企业的关注。因此,改革传统的公文流转模式,使公文流转和管理过程电子化、信息化,让工作人员处理公文的过程简单化,不再像以前一样复杂。通过统一办公规范,提高工作效率,降低成本,最终实现办公自动化。此时的公文流转系统的特点是以公文处理、档案管理为核心的办公管理系统。尽管如此,由于大部分企业的组织构架都有明显的层级结构,传统的办公程序,从文件起草、审批、签发到归档等各个环节,存在流程复杂,流转时间长,导致办公效率低,决策缓慢等问题。由于在机构和流程上很难做改动,因此解决的办法就是采用先进的计算机和网络技术,不仅将办公内容电子化,而且实现整个办公过程信息化。从根
20、本上改变了传统的办公模式。虽然公文流转系统随着办公信息化的发展得以明显的进步,其基本功能都实现了,但是在某种程度上,现在的公文流转系统还不是很完善,还有许多不足需要进一步改进。2.公文流转系统的发展趋势事实上,现在的办公已经不再是简单的文档处理了。现代办公的任务是提高整个单位的工作效率,进而提高单位的核心竞争力。知识管理可以帮助企业解决知识共享和再利用的问题。因此将来的公文流转系统的核心是知识,实现的基础技术是知识管理。同样未来的公文流转系统需要在现有的公文流转系统的发展基础上得以进一步发展。纵观现在国内外的公文流转系统,能够轻易的发现未来的公文流转系统朝着以下几方面发展:(1)集成。现在许多
21、单位除了拥有公文流转系统之外,还有很多其他的管理系统。由于大量的信息孤岛式的建设,他们之间很少能够紧密协调起来。经常需要退出正在运行的系统再进入另一个系统,并且还会发现数据常常不一致。目前中国具有信息系统的单位大部分都是这种情况。因此,现在或者未来所需的公文流转系统是需要一个能够集多种功能于一体的系统。(2)完全基于Web。从目前用户的使用技能和接受程度以及系统的维护成本考虑,web界面最容易接受。另外从集成方面来讲,必须采用人人支持的Web标准才能在一个界面下容纳,否则的话,技术难度就会导致集成不可能实现。(3)流程优化。对于流程,熟悉公文流转系统的人就会想起收发文的流程。那是非常完善的、符
22、合层级结构的、效率低下的流程。如果基于原有的思维模式和知识领域,就无法获得更多信息。必须基于现代的流程管理思想对目前的业务流程进行重组。(4)基于知识。进入知识经济时代,人人都是知识工作者,要求公文流转系统必须具有知识内涵,或者说是基于知识2。(四)公文流转系统的研究意义1.有利于公文流转管理的操作,易于管理。由于高校所涉及的信息量较大,所管理的种类比较繁多,在传统的公文流转管理中,各种管理工作往往是很复杂烦琐的。在管理过程中经常会出现信息的重复传递,因此公文流转管理必须实现计算机化处理。通过功能模块的优化组合实现不同的管理细节,使管理过程实现最大程度的自动化与信息化,并能自动对人工操作环节进
23、行复查,使公文流转系统出错率降至最低。将原本由人来完成的过程由电脑完成,降低了人员及管理成本。实现公文流转管理的系统化、规范化、自动化、信息化与智能化,从而达到提高公文流转管理效率的目的。2.有利于公文流转管理清晰化,透明化。日常公文处理在高校的工作中是一项繁杂而重要的工作,在工作中,往往会因为个人文书管理不当,产生文件遗失,过时未批,或者出差在外,无法及时批阅等情况。还会出现因个人原因没有将文件及时的传达给其他部门,导致其他部门不能及时的了解信息,按时完成必要的任务。公文流转系统的使用,可以使各个部门通过网络及时的了解信息,也同时提高了工作效率。总之,公文流转系统可以充分利用内部网络资源 ,
24、实现公文的提交、审批、到达提醒、归档管理和系统管理等功能。在计算机上批阅处理公文,省略了现实中一些冗余的流转过程,便于文件的积累和再利用,利于流程的跟踪和共享的容易程度,历史文件的检索以及各部门文件的传输等,具有广泛的需求和广阔的市场前景。二、系统的关键技术与关键算法(一)开发环境1.JSP技术简介JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开
25、发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP与Java S
26、ervlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP主要优势如下:(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比JSP/PHP的局限性是显而易见的。 (3)强大的可伸缩性。从只有一个小的war文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(
27、4)多样化和功能强大的开发工具支持。这一点与JSP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。2.SQL Server2000数据库SQL Server2000是一个关系型数据库管理系统,开发者为美国Microsoft公司。目前SQL Server2000被广泛地应用在Internet上的中小型网站中。与其他的大型数据库相比,SQL Server2000自有它的不足之处,如规模小、功能有限等,但是这丝毫也没有减少它受欢迎的程度。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成
28、本而选择了SQL Server2000作为网站数据库。它可以使用命令行工具管理SQL Server2000数据库,也可以使用SQL Server自带的企业管理器来进行管理,界面友好,操作简单。Microsoft SQL Server2000扩展了Microsoft SQL Server7.0版的性能、可靠性、质量和易用性。主要特性如下:(1)Internet集成。SQL Server2000数据库引擎提供完整的XML支持。它还具有构成最大的Web站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQL Server2000程序设计模型与Windows DNA构架集成,用以开发Web应用程序,
29、并且SQL Server2000支持English Query和Microsoft搜索服务等功能,在Web应用程序中包含了用户友好的查询和强大的搜索功能。(2)可伸缩性和可用性。同一个数据库引擎可以在不同的平台上使用,从运行Microsoft Windows98的便携式电脑,到运行Microsoft Windows2000数据中心版的大型多处理器服务器。SQL Server2000企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大Web站点所需的性能级别。(3)企业级数据库功能。SQL Server2000关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保
30、护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server2000分布式查询使得用户可以引用来自不同数据源的数据,就好像这些数据是SQL Server2000数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。(4)易于安装、部署和使用。SQL Server2000中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用SQL Server的过程。SQL Server2000还支持基于标准的、与Windows DNA集成的程序设计模型,使SQL Server数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使用户
31、得以快速交付SQL Server应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。(5)数据仓库。SQL Server2000中包括析取和分析汇总数据以进行联机分析处理的工具。SQL Server中还包括一些工具,可用来直观地设计数据库并通过English Query来分析数据。3.MyEclipseMyEclipse企业级工作平台是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,JSP,CSS,Javasc
32、ript,SQL。在结构上MyEclipse的特征可以被分为7类:J2EE模型;WEB开发工具;EJB开发工具;应用程序服务器的连接器;J2EE项目部署服务;数据库服务;MyEclipse整合帮助。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。(二)B/S模式分析B/S模式是一种以Web技术为基础的新型的MIS系统平台模式。把传统C/S模式中的服务器部分分解为一个数据服务器与一个或多个应用服务器
33、(Web服务器),从而构成一个三层结构的客户服务器体系。第一层客户机是用户与整个系统的接口。客户的应用程序精简到一个通用的浏览器软件,如Netscape Navigator,微软公司的IE等。浏览器将HTML代码转化成图文并茂的网页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。这个后台就是第二层的Web服务器。第二层Web服务器将启动相应的进程来响应这一请求,并动态生成一串HTML代码,其中嵌入处理的结果,返回给客户机的浏览器。如果客户机提交的请求包括数据的存取,Web服务器还需与数据库服务器协同完成这一处理工作。第三层数据库服务器的任务类似于C/
34、S模式,负责协调不同的Web服务器发出的SQL请求,管理数据库。B/S模式首先简化了客户端。它无需象C/S模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便、网络结构更加灵活。假设一个企业的决策层要开一个讨论库存问题的会议,他们只需从会议室的计算机上直接通过浏览器查询数据,然后显示给大家看就可以了。甚至与会者还可以把笔记本电脑联上会议室的网络插口,自己来查询相关的数据。其次,它简化了系统的开发和维护。系统的开发者无须再为不同级别的用户设计开发不同的客户应用程序了,只需把所有的功能都实现在Web服务器上,并就
35、不同的功能为各个组别的用户设置权限就可以了。各个用户通过HTTP请求在权限范围内调用Web服务器上不同处理程序,从而完成对数据的查询或修改。现代企业面临着日新月异的竞争环境,对企业内部运作机制的更新与调整也变得逐渐频繁。相对于C/S,B/S的维护具有更大的灵活性。当形势变化时,它无须再为每一个现有的客户应用程序升级,而只需对Web服务器上的服务处理程序进行修订。这样不但可以提高公司的运作效率,还省去了维护时协调工作的不少麻烦。如果一个公司有上千台客户机,并且分布在不同的地点,那么便于维护将会显得更加重要。再次,它使用户的操作变得更简单。对于C/S模式,客户应用程序有自己特定的规格,使用者需要接
36、受专门培训。而采用B/S模式时,客户端只是一个简单易用的浏览器软件。无论是决策层还是操作层的人员都无需培训,就可以直接使用。B/S模式的这种特性,还使MIS系统维护的限制因素更少。最后,B/S特别适用于网上信息发布,使得传统的MIS的功能有所扩展。这是C/S所无法实现的。而这种新增的网上信息发布功能恰是现代企业所需的。这使得企业的大部分书面文件可以被电子文件取代,从而提高了企业的工作效率,使企业行政手续简化,节省人力物力。鉴于B/S相对于C/S的先进性,B/S逐渐成为一种流行的MIS系统平台。各软件公司纷纷推出自己的Internet方案,基于Web的财务系统、基于Web的ERP。一些企业已经领
37、先一步开始使用它,并且收到了一定的成效。B/S模式的新颖与流行,和在某些方面相对于C/S的巨大改进,使B/S成了MIS系统平台的首选。本系统也采用B/S结构开发。(三)MD5加密算法1.MD5加密算法描述MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。 MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方面。如在UNIX系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行MD5的Hash运算,然后再去和保存在文件系统中的MD5值进行比
38、较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。MD5将任意长度的“字节串”映射为一个128bit的大整数,并且是通过该128bit反推原始字符串是困难的,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串。所以,要遇到了MD5密码的问题,比较好的办法是:你可以用这个系统中的MD5函数重新设一个密码,如admin,把生成的一串密码的Hash值覆盖原来的Hash值就行了。本系统在用户登录,添加用户信息等功能中运用到MD5技术。2.MD5算法的原理
39、对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。在MD5算法中,首先需要对信息进行填充,使其位长对512求余的结果等于448。因此,信息的位长将被扩展至N*512+448,N为一个非负整数,N可以是零。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息的位长=N*512+448+64=(N+1)*5
40、12,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。MD5中有四个32位被称作链接变量的整数参数,他们分别为:A=0x67452301,B=0xefcdab89,C=0x98badcfe,D=0x10325476。当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。主循环有四轮,每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向左
41、环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一3。3.MD5算法的实现MD5算法主要实现代码如下:%String userid = request.getParameter(UserID); /获取用户输入UserIDString password = request.getParameter(Password); /获取用户输入的PasswordString pwdmd5 = oMD5.getMD5ofStr(password); /计算MD5的值ResultSet rs = stmt.executeQuery(select * from users wh
42、ere userID =+userid+ and pwdmd5= + pwdmd5+);/用计算出来的值与原数据库中保存的值进行对比Private void md5Update(byte inbuf,int inputlen)/md5Update是MD5的主计算过程,inbuf是要变换的字节串,inputlen是长度,这个函数由getMD5ofStr调用,调用之前需要调用md5init,因此把它设计成private的。4.MD5算法的安全性从安全角度讲,MD5的输出为128位,若采用纯强力攻击寻找一个消息具有给定Hash值的计算困难性为2128,用每秒可实验1000000000个消息的计算机需
43、时1.07x1022年。若采用生日攻击法,寻找有相同Hash值的两个消息需要试验264个消息,用每秒可试验1000000000个消息的计算机需时585年。(四)工作流技术1.公文流转系统中工作流的分析工作流的概念起源于生产组织和办公自动化领域,目的是通过将工作分解成定义良好的任务,角色,按照一定的规则和过程来执行这些任务,实现公文流转全过程的集成管理。把人,信息和应用有效的,合理的组织起来,实现在适当的时间把公文传给适当的人来审批,从而提高办事效率,降低生产成本,使各高校合理化管理。实际办公工作种类繁多,有收文、发文、信息录入、文件或信函归档等。其特点是一项工作一般由多个办公人员协作完成,并且
44、在他们之间符合一定的办公流程。每项工作都由一个任务集和任务之间的流程关系集组成。任务集是独立的工作项集合,分别由特定的人员或代理来处理。任务之间的流程关系即是文档对象的传递和处理关系。公文流转的一个重要的特征就是流程复杂,难以用标准的程序化来解释,因此,公文流转系统必须有与之相应的工作流程定义,使操作人员能够自主的设定公文流转流程。本系统在拟稿人将文件拟好以后,选择审批此公文的部门和下发此公文的部门,只有授权的部门才能对公文进行审批和下发。同时也实现了完善的用户权限体系。2.工作流的实现过程本系统在用户拟稿模块和公文下发模块完成对公文流转流程工作流的配置,角色类型配置设置文档发文过程和收文过程
45、中的不同角色,状态类型配置设置不同的文档类型和发文过程的级别层次,部门类型配置设置文档发文过程中经过的不同部门,人员配置设置人员的姓名、角色、所在部门以及所担任的职务等,文档类型配置设置发文系统中所需审批文档的模板,流程配置设置各种文档在审批过程中经过的状态、在此状态下可执行的角色、可执行的操作及操作所触发的状态。拟稿人员设计完成一份文档后,根据所建立的流程模型,把文档作为变量赋给此流程模型,同时指定各任务节点的参与人员并作出时间的要求。再定义各任务节点的其它要求。对该流程进行实例化,加入具体的任务项。工作流程实例化完毕,由工作流程服务器检查其是否准备就绪。一旦工作流程实例准备就绪,则可以根据
46、工作流程的性质由人工启动该工作流程或由系统自动启动该工作流程。工作流程启动后,流程的状态由准备转为执行中。整个工作流系统的工作方式如下:客户端用户通过浏览器登录到Web服务器,此时可以启动新的流程、处理其工作项等。每个工作项都与一个表单对应。在表单中以各种不同的方式表示需要处理的数据。用户可以通过客户端所提供的各种工具对这些数据进行处理。在此过程中可以与数据库系统进行交互,如查询数据库中信息,或将某些应用数据保存到数据库中等。处理完成之后可将其提交,然后工作流执行机将根据表单中数据生成下一个工作项,并通知相应的用户进行处理,如此直至整个流程完成1。(五)数字签名技术1.数字签名的实现处理数字签
47、名时,会执行两种操作,第一种是创建签名,即由一组数据创建其消息摘要,再用私钥对消息摘要进行签名;第二种操作是接收数字签名的人对它进行验证,也就是对解密的信息原文创建消息摘要,并用公开密钥对数字签名解密,两者相互比较,进行验证。以上操作都封装在Signature类中。Public abstract class Signature extends SignatureSpi提供一个引擎,以创建和验证数字签名4。(1)创建签名:public static Signature getInstance(String algorithm)生成一个实现指定算法的签名对象,SUN的安全提供者中有此类的具体实现,可以基于DSA和RSA算法生成数字签名。public void final initSign(PrivateKey PrivateKey)初始化签名对象,为创建签名做准备;public final void update(byte b)将数据加入到一组累计数据中,签名对象将其进行签名;public final int sign(byteoutbuf,int offset,int len)创建一个数字签名,outbuf是存放签名的输出数组,offset和len分别是数组