毕业设计(论文)-USB KEY文件加密系统的设计与实现.doc

上传人:哈尼dd 文档编号:3945989 上传时间:2019-10-10 格式:DOC 页数:21 大小:230KB
返回 下载 相关 举报
毕业设计(论文)-USB KEY文件加密系统的设计与实现.doc_第1页
第1页 / 共21页
毕业设计(论文)-USB KEY文件加密系统的设计与实现.doc_第2页
第2页 / 共21页
毕业设计(论文)-USB KEY文件加密系统的设计与实现.doc_第3页
第3页 / 共21页
毕业设计(论文)-USB KEY文件加密系统的设计与实现.doc_第4页
第4页 / 共21页
毕业设计(论文)-USB KEY文件加密系统的设计与实现.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《毕业设计(论文)-USB KEY文件加密系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-USB KEY文件加密系统的设计与实现.doc(21页珍藏版)》请在三一文库上搜索。

1、USBUSB KEYKEY 文件加密系统的设计与实现文件加密系统的设计与实现 摘摘 要要 随着信息技术的飞速发展,文件的安全性越来越被重视。为了实现对 个人重要信息的加密,防止别人窃取个人的文件信息,提高文件的安全性, 文件加密成为了一个重要的课题。 本设计为了解决用户记忆烦琐的密码问题,以软、硬件相结合的方式, 实现了文件加密和解密的功能。具有操作简单、稳定性高、兼容性好、速 度快等特点。该系统使用 Rockey2 加密锁,用 Delphi 进行开发。本系统分 为两部分,一部分是文件的加密解密;另一部分是加密锁的管理工具。后 一部分由本人完成。 本文主要介绍了 USB KEY 文件加密工具的

2、总体设计和详细设计思路以 及应用和编码。在总体设计中主要介绍了设计该工具的需求分析、系统的 选型、以及 Rockey2 加密锁的介绍。在详细设计中主要介绍了系统功能的 分析、Rockey2 加密锁的内存分配、以及数据库的相关设计。在应用和编 码部分主要介绍了硬件的安装,初始化、写用户名和密码的应用和编码, 管理界面的设计以及数据库的相关操作。最后介绍了系统的不足以及改进 方案。 关键字:关键字:USB;加密;Delphi;管理 The Files Encryption Tool Based on USB-KEY USB -KEY Management System Abstract With

3、the rapid development of IT, the security of the files has been increasingly attention. To implement encryption for important personal information, preventing others that steal personal information, improving the security of the document, encryption has been a very important topic. This design aims

4、to solve the problem that users passwords are remembered difficulty, implement the functions of encryption and decryption for documents by the combination of software and hardware. It has many characteristics, such as simple, stable, good compatibility, speed and so on. The system uses Rockey2 USB K

5、ey, developed with Delphi. This system has two parts, one part mark is the document encryption deciphering; another part of the administration implement being to encrypt a lock. The queen part is completed by me. This paper introduces the brief design, detailed design, the application and coding of

6、USB KEY file encryption tool. It introduces the requirements analysis, the system selection for the design, and Rockey2 encryption in the brief design. And it introduces the main functions of the system analysis, the memory allocation of encryption Rockey2, and the related database design in the det

7、ailed design. Besides, in the aspect of application and coding, it main introduces the hardware installation, initialization, writing users name, passwords for application and coding, and design of management interface, operation of the database. Finally, it introduces the shortcomings of the system

8、 and how to improve it. Key word: USB; Encryption; Delphi; Management. 目目 录录 论文总页数:22 页 1 引 言1 1.1 选题背景 1 1.2 国内外研究现状 1 1.3 本设计研究的意义 1 1.4 本设计研究的方法 1 2 USB KEY 文件加密工具总体设计 2 2.1USB KEY 文件加密工具需求分析 .2 2.2 系统选型 3 2.2.1 设计语言:Delphi 3 2.2.2 数据库的选择 4 2.2.3 开发工具的选择 4 2.2.4 开发硬件的选择 5 2.3 ROCKEY2 加密锁 5 2.3.1

9、Rockey2 加密锁简介 5 2.3.2 Rockey2 加密锁特点 5 2.3.3 Rockey2 加密锁优点 5 2.3.4 Rockey2 加密锁要点说明6 3 USB KEY 文件加密工具系统详细设计 6 3.1 系统功能模块分析6 3.2ROCKEY2 加密锁内存分配 .7 3.2 数据库设计 8 3.2.1 数据库需求分析 8 3.2.2 数据库实体关系设计 8 3.2.3 数据库逻辑设计 9 4 应用以及编码 .10 4.1 初始化以及写密码的过程的应用与编码 .10 4.2 管理界面的设计 .12 4.2.1 管理主界面设计 .12 4.2.2 分类管理模块的设计 .13 4

10、.2.3 添加客户模块的设计 .14 4.2.4 编辑客户模块的设计 .15 4.2.5 查看客户模块的设计 .16 4.2.6 Rockey 初始化模块16 4.3 数据库操作 .18 结 论.19 参考文献.20 第 1 页 共 22 页 1 1 引引 言言 1.11.1 选题背景选题背景 随着社会高科技,商品经济化突飞猛进的发展,计算机的应用已经普及到 经济和社会生活的各个领域。长期以来人们使用各种加密技术以保证计算机中 信息的安全,防止被一些有不良用心的人看到或则破坏。在信息时代,信息可 以帮助团体和个人,使他们受益,同时,信息也可以对他们构成威胁,造成破 坏。在激烈竞争的社会中,大家

11、都会想尽办法获取对方的资料。因此客观上就 需要有一种强有力的安全措施来保护我们的机密数据不被窃取和破坏。 1.21.2 国内外研究现状国内外研究现状 在日常的应用中,面对很多熟知的压缩软件和加密软件,例如 WinRaR、WinZip 等,这些软件也逐渐成为了当前大家默认的业界应用标准。然 而,也正是它们的通用性和普遍性使它们缺乏个性化的应用特色,采用口令保 护的方式对压缩文件进行加密也是形同虚设,有许多破解软件都能够轻而易举 地获取口令。面对 WinRaR 和 WinZip 自身的不足。比如密码太长用户就不方便 记忆,有可能会忘记,密码太短又会不安全。如果利用扩展硬件(USB Key)来 进行

12、文件的加密和解密,那么就可以有效避免上面的问题。因此这样就不需要 手工来进行密码的输入,而将加密和解密的密码是保存在扩展硬件当中的。 1.31.3 本设计研究的意义本设计研究的意义 如果使用硬件来进行文件的加密具有访问速度快、可靠性高、保密性好、 寿命长等优点。但是以前加密硬件成本较高,往往用在对安全要求相对较高的 场合。随着硬件成本的降低,这种设备已经可以被个人所接受。因此本文描述 了一种使用低成本 USB Key 来辅助进行加密的文件加密系统,可以广泛的应用 在个人信息的保护和企业重要文件保护当中。 1.41.4 本设计研究的方法本设计研究的方法 本设计分为两个部分,由两个人共同完成。一部

13、分是利用低成本的 USB Key 来做一个对文件的加密工具;一部分是利用 Delphi 编写的一个相对简单的 管理软件来实现对 USB Key 的管理。加密工具符合大多用户操作 WinRAR 的习惯, 可以方便的对文件进行加密和解密的操作,同时具有方便、易用、安全的特点。 管理软件能对用户以及 USB KEY 进行简单的管理,当用户拥有的 USB KEY 遗失 时可以有效的复制一把 USB KEY,同时管理界面简单、易用的特点。 第 2 页 共 22 页 2 2 USBUSB KEYKEY 文件加密工具总体设计文件加密工具总体设计 2 2. .1 1USBUSB KEYKEY 文件加密工具需求

14、分析文件加密工具需求分析 当前软件加密方法多种多样,基本上来说可以分为依赖特定硬件的加密方 案和不依赖硬件的加密方案。 依赖特定硬件的加密方案:软盘加密、卡加密、光盘加密。软盘加密和卡 加密曾经作为一种很好的加密工具,现在已经很少使用了,这是因为用户很少 使用软驱,那么软盘加密技术也就没怎么使用。90 年代初,各种各样的汉卡涌 现出来,并轰动一时,而现在也很少再使用。光盘加密是一种新的加密方式。 既然有软盘加密成功在先,为什么不能有光盘加密呢?但实际操作上确实是有一 些问题的,因为光盘有 ISO9660 标准协议规定,其可控制性比软盘还要严格, 想找出一种只能运行而不能复制的方式确实很困难。

15、不依赖硬件的加密方案:利用 WinRAR、WinZip 等压缩软件来进行文件的加 密。利用压缩软件来实现对文件的加密是现在比较流行的一种方式,但是其有 很多的不足,例如向密码太长用户就不方便记忆,有可能会忘记,密码太短又 会不安全。并且现在网上有很多的针对 WinRAR、WinZip 的破解工具,利用破解 工具很容易就把用户的密码给破解了,这样用户对文件的加密就如同虚设。 本设计就是利用软件和硬件相结合的方式来实现对文件进行加密。这种方 式就是使用软件加密锁(USB KEY)来实现。也就是一个插在计算机 USB 接口上 火柴盒大小的设备,国内俗称“加密狗” 。在加密锁内部存有一定的数据和算法,

16、 计算机可以与之通讯来获得其中的数据,或通过加密锁进行某种计算。软件无 法离开加密锁而运行。由于它不像卡加密那样需要打开计算机的机箱来安装, 但又像加密卡那样可以随时访问,而且访问速度很快,所以一推出就受到软件 开发者们的青睐。目前,所有的加密锁都提供了可编程的接口。用户可以控制 加密锁中的内容,在程序中通过加密锁的接口任意访问加密锁。 利用 USB KEY 对文件加密应尽量满足用户的需求,使用户对文件加密和解 密的过程操作简单,使用方便。并且对密码也要有完善的管理。使用 USB KEY 可以在 USB Key 中保存密码,不在需要用户去手动输入密码,解决了用户去记 忆复杂密码的过程。鉴于越来

17、越多的人使用 USB KEY 来保护自己的个人文件。 但是许多的意外事件可能会降临,一旦 USB KEY 被遗失,那么后果将是巨大的。 所以开发一个管理性的软件记录拥有 USB KEY 的用户相关信息、USB KEY 的硬 件 ID、以及对文件加密的密码是十分必要且有效的方法。 利用 USB KEY 文件加密需要从两个方面去实现用户的需求,第一:USB KEY 的管理。第二:客户端应用。 在 USB KEY 的管理方面:主要包括分类管理、客户添加、查看、编辑,初 第 3 页 共 22 页 始化 Rockey2 这几个方面的功能。分类管理是对用户按什么方式进行分类管理 (比如按时间,地区等) ,

18、由管理员自己设定分类方式,这样便于方便管理用户; 管理员实现对用户的添加,查看,编辑;管理员对 USB KEY 进行初始化,一把 新的 USB KEY 第一次使用,必须进行初始化,初始化也就是根据种子生成对文 件加密的密钥,以及 UID,并且还要记录 USB KEY 的信息(包括对文件加密的 密钥,硬件 ID 等)到管理软件中,以便以后对 USB KEY 进行复制。 在客户端方面,应该尽量使操作简单,不麻烦,就类似 winrar 对文件加密 的操作一样。这样才能被用户接受。这一方面主要完成文件的加密和解密操作。 其系统结构图如下: 图 1 系统整体结构图 USB KEY 文件加密系统的客户端主

19、要实现对文件的加密和解密;其管理系 统主要实现对对用户以及拥有的 USB Key 信息进行操作管理。 2 2. .2 2 系统选型系统选型 2 2. .2 2. .1 1 设计语言设计语言:DelphiDelphi Delphi 是 Borland 公司研制的新一代可视化开发工具,可在 Windows3.x、Windows95、Windows NT 等环境下使用。它拥有一个可视化的集 成开发环境(IDE),采用面向对象的编程语言 Object Pascal 和基于部件的开发 结构框架。Delphi 它提供了 100 多个可供使用的构件,利用这些部件,开发人 员可以快速地构造出应用系统。开发人员

20、也可以根据自己的需要修改部件或用 Delphi 本身编写自己的部件。主要特点如下: (1)直接编译生成可执行代码, 编译速度快。(2)支持将存取规则分别交给客户机或服务器处理的两种方案,而 且允许开发人员建立一个简单的部件或部件集合,封装起所有的规则,并独立 于服务器和客户机,所有的数据转移通过这些部件来完成。 (3)提供了许多快 速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的应 USB Key 文件 加密 系统 文 件 加 密 解 密 管 理 系 统 第 4 页 共 22 页 用。利用项目模板和专家生成器可以很快建立项目的构架,然后根据用户的实 际需要逐步完善。 (4)具

21、有可重用性和可扩展性。(5)具有强大的数据存取功能。 它的数据处理工具 BDE(Borland Database Engine)是一个标准的中介软件层, 可以用来处理当前流行的数据格式,如 x Base、Paradox 等,也可以通过 BDE 的 SQL Link 直接与 Sybase、SQL Server、Informix、Oracle 等大型数据库连 接。 Delphi 既可用于开发系统软件,也适合于应用软件的开发。 从上可以看出 Delphi 在开发数据库性质的管理软件十分方便和快捷。 2 2. .2 2.2.2 数据库的选择数据库的选择 USB key 文件加密管理系统的数据库选用的是

22、 Absolute Database。Absolute Database 是 Borland 数据库引擎(BDE)的替代品。具有高 速,健壮,易用的特点。使用 Absolute Database 不需要特别的安装和配置。 该系统在连接数据库用到了以下几个数据库引擎组件,如表 1 所示: 表 1 组件表 组件中文名用途 TDataSource 数据源组件作为数据集组件(TTable,TQuery,TStoredProc)与数 据控制组件(TDBGrid,TDBEdit)之间传送数据的通道。 TTable 数据表组件通过 BDE 存取磁盘上数据库表,再为 TDataSource 提供数 据源,使得

23、数据控制组件能够有效地从 TTable 中访问数据并 能显示和编辑其中的数据。 TQuery 数据查询组件利用 SQL 语言访问数据库表中的数据,再为 TDataSource 提供数据源,实现数据控制组件对数据库的访问。 TDatabase 数据库组件当应用程序要登录到一个远程服务器上的数据库时,可以 用该组件来建立应用程序与数据库永久性的连接。 2 2. .2 2. .3 3 开发工具的选择开发工具的选择 现在有许多的第三方控件支持 Delphi, USB key 文件加密管理系统使用了 Dev Express DB Tress 和 Dev Express Quantum Grid 这两个控

24、件 1) Express DB Tress:强大的树型结构列表的控件。 Express DB Tress 为 VCL 开发者们提供了一个最高级的树形列表技术。 Express DB Tress 是一个功能强大,已打包的组件库,它可以帮助你创建杀手 级软件,为你的最终用户提供难以置信的功能,只需要很少的代码就可以实现 用户的需求。 2) Express Quantum Grid:表格控件。 第 5 页 共 22 页 它是树形列表控件和数据编辑控件的控件库,适合于 Delphi 和 C+ Builder 平 台下的应用开发。该组件是基于底层开发出来的,而且是纯粹的本地化的可视 控件库,特别设计用来

25、开发引人注目的应用程序,将令人难以置信的特性传递 给终端用户,从而使你的程序产品在激烈的竞争中取得优先地位,而实现这一 切不需要编写简单的一行代码。 2 2. .2 2.4.4 开发硬件的选择开发硬件的选择 利用 USB KEY 对文件进行加密和解密时,都需要有一把 USB KEY 硬件锁作 为支配。在众多的 KEY 中选用 Rockey2 加密锁作为这个 USB KEY。因为 Rockey2 加密锁是安全性比较高的免驱动的 USB 设备,同时售价低。采用的是传统 EPROM 结构。它制作容易,使用方便。而且它方便携带,记录的空间也比较大。 适合各类人员对文件进行加密。利用 Rockey2 已

26、经可以满足该设计的需求。 2.32.3 ROCKEY2ROCKEY2 加密锁加密锁 2 2.3.1.3.1 Rockey2Rockey2 加密锁简介加密锁简介 Rockey2 加密锁是为软件开发商提供的一种智能型的软件加密工具,它包 含一个安装在计算机并行口或 USB 口上的硬件,及一套适用于各种语言的接口 软件和工具软件。加密狗基于硬件加密技术,其目的是通过对软件与数据的加 密防止知识产权被非法使用。 Rockey2 加密锁是一种比较简化型的加密锁。适合各类人员对信息进行加 密。用户可以对自己电脑里面的私人信息进行加密,公司可以对内部机密信息 进行加密等等。 Rockey2 加密锁是一款可以

27、支持软件保护应用和身份认证应用的多功能, 免驱动的 USB 设备。 2 2.3.2.3.2 Rockey2Rockey2 加密锁特点加密锁特点 其特点如下: a) USB 无驱设备 b) 全球唯一硬件 ID c) 提供外壳加密工具 d) 2.5K 用户使用空间 e) 标准 USB1.1 设备,支持 USB2.0 接口 f) 提供多种软件接口:Delphi、Foxpro、Java、PB、VB、VC、VS.NET 等 2 2.3.3.3.3 Rockey2Rockey2 加密锁优点加密锁优点 Rockey2 具有以下一些优点: 第 6 页 共 22 页 (1)兼容性好 它具有高度的透明性,特别是对

28、多个相同的 Rockey2 加密锁也可以使用 USB HUB 并联在一起使用,相互之间不会有干扰。 (2)速度快 对于使用 Rockey2 加密锁加密后的软件,其运行速度同加密前的区别并不 大,它能够在很短的时间内处理完毕,保证用户程序的顺畅运行。 (3)使用简便 Rockey2 加密锁最大限度的简化了接口。可以在很短的时间内掌握它的使 用方法,从而大大的节约了时间。 2 2.3.4.3.4 Rockey2Rockey2 加密锁要点说明加密锁要点说明 每一把 Rockey2 加密锁除了有 1 个独一无二的“硬件 ID 外” ,还有 1 个 用户可设定的“用户 ID” ,我们定义“硬件 ID”为

29、 HID, “用户 ID”为 UID, 这 2 个 ID 都是 32bit 位的 DWORD 数值。每把加密锁都是倚赖这 2 个 ID 作为独一无二的识别标志。 当对 Rockey2 加密锁还没有进行初始化的时候, 缺省的 UID 为 0,这时候虽然能够使用这个等于 0 的 UID 来打开加密锁并进 行读写操作,但无法获得正确的 HID,因为当 UID 等于 0 的时候,表示的是 出厂状态,这时候 HID 也会返回 0。只有当用户设定了自己的 UID 以后,才 能够获得正确的 HID。 在用户生成 UID 的时候需要给出 1 个长度不超过 64 个 字节的字符串作为种子,加密锁会根据这个种子生

30、成 UID,这个生成算法是在 加密锁内部完成的,而且是不可逆的,也就是说,只有生成者才知道什么样的 种子能生成什么样的 UID,别的人即使知道 UID,也能够调用这个计算过程, 但因为不知道种子是什么,是无法生成你的 UID 的。 另外在生成 UID 的时候, 能够指定加密锁的 EPROM 是否是可写的,如果设定为不可写,整个 EPROM 处 于写保护状态。 3 3 USBUSB KEYKEY 文件加密工具系统详细设计文件加密工具系统详细设计 3 3. .1 1 系统功能模块系统功能模块分析分析 总体模块分为 KEY 的管理和客户端两部分。在 KEY 的管理方面我们需要把 KEY 里面记录的信

31、息都保存到数据库里面,方便我们查询、修改、添加和删除 KEY 里面的信息。对每把锁都进行管理,防止有同号锁出现。如果加密锁因为 某种情况损坏或者是丢失了,那么可以通过数据库里面记录的信息复制一把相 同的锁,这样就不用担心由于找不到锁而不能对已加密的文件进行解密操作。 对加密锁进行更加完善的管理,才能进一步保障被加密文件的安全,让用户才 会更加放心的使用。客户端部分主要是完成操作方面的功能。客户端主要包括 第 7 页 共 22 页 两方面-文件加密和文件解密。对文件进行加密时,要利用 USB KEY 中的密码 对文件进行加密。这就需要从 KEY 里面读取出密码并利用该密码对文件进行加 密。并且对

32、该密码进行 MD5 换算。得到密码的 MD5 值,把这个值称为 XID。对 文件进行解密时,先从 KEY 里面读取出密码,然后对密码进行 MD5 换算,如果 换算后的 XID 与被加密文件的 XID 一样就可以成功对文件进行解密,否则不能 对文件解密。 该设计主要是管理员对用户以及拥有的 USB Key 信息进行操作管理,功能 说明如下: 1)分类管理:设置创建新分类和子分类。通过按地区、时间等对用户进行 分类,以方便进行管理。 2)客户信息管理:实现对客户信息的添加、删除和修改。也就是系统中的 添加、编辑和查看客户模块。 3)Rockey2 的初始化:实现对 Rockey2 的初始化,通过种

33、子生成对文件加 密的密钥,还有 UID。初始化过后并把 Rockey2 的相关信息(包括密钥和硬件 ID)记录到管理系统中。 系统功能图如下: USB 文件加密系统 KEY 的管理客户端 客 户 分 类 管 理 添 加 客 户 信 息 编 辑 客 户 信 息 查 看 客 户 信 息 K E Y 的 初 始 化 加 密 解 密 图 2 系统功能结构图 第 8 页 共 22 页 3.2ROCKEY23.2ROCKEY2 加密锁内存分配加密锁内存分配 Rockey2 加密锁总共有 2560 个字节,为了便于管理,把 USB KEY 的存储空 间分配成 5 个段,每个段为 512 个字节。在把每个段划

34、分成 16 个存储区,每个 区 32 个字节。这样便于对 KEY 的存储空间进行统一的分配和管理。以后向 KEY 的存储区里面写入的信息时,信息都会自动保存到相关的位置。 表 2 内存分配示意图 12345678910111213141516 0nullsnMd5un 1 2 3 4 1) NULL:空值,没使用 2) SN:密码 3) MD5:密码的 MD5 值,用于识别用户 4) UN:用户名 3 3.2.2 数据库设计数据库设计 3 3.22.1 1 数据库需求分析数据库需求分析 作为一个具有一定应用价值的管理系统,从本质上说其操作的对象为数据 库中存储的具体记录。因此,不仅需要所使用的

35、数据库系统具有比较高的稳定 性、安全性下保持足够响应的能力,还要求设计者清楚需求,做出合理的数据 库逻辑结构设计,以提高数据库的利用效率和减少数据冗余。 以这种思想作为设计策略,分析出系统的以下几项需求: (1)管理员可以实现对用户的分类 (2)管理员可以实现对用户信息的添加,编辑和查看。 (3)管理员可以初始化用户拥有的 Rockey2 3 3.22.2 2 数据库实体关系设计数据库实体关系设计 通过以上的需求分析,设计出数据库的逻辑结构ER 图,从这种逻辑 结构有可以建立数据库的物理结构即表结构。根据需求设计出三个数据表,分 别是:客户信息表(clients),key 表(keys),分类

36、表(groups)其结构及关系如 图 1 所示。 第 9 页 共 22 页 客 户 拥 有 KEY 包 含 3 3.22.3 3 数据库逻辑设计数据库逻辑设计 确定了数据库的逻辑关系和数据结构之后,进一步将以上所述的四个数据 表由概念结构转化为数据库系统所支持的实际数据模型,也就是数据库的逻辑 结构。 表 3 所示为客户信息表(clients) ,记录了管理员所管理的客户的相关信 息。 表 3 clients 列名数据类型长度 CGID(PK)INTEGER4 CNameSTRING50 CAddressSTRING50 CContactSTRING20 CPhoneSTRING100 CMo

37、bileSTRING40 CFaxSTRING40 CWebSTRING25 CEmailSTRING40 客户分类客 户 图 3 客户与客户分类关系图 图 4 客户与 KEY 关系图 第 10 页 共 22 页 表 4 所示为分类表(groups),记录管理员按照什么方式进行分类。 表 4 groups 列名数据类型长度 GID(PK)AUTOINC4 GPIDSTRING20 GNameSTRING40 表 5 所示为 keys 表,记录了客户所拥有的所有 Rockey2 的信息,包括对文 件加密解密的密码以及硬件 ID 号。 表 5 keys 列名数据类型长度 KID(PK)AUTOIN

38、C4 KCIDSTRING20 KHIDSTRING40 KPassSTRING32 KOtherSTRING20 第 11 页 共 22 页 4 4 应用以及编码应用以及编码 4.14.1 初始化以及写密码的过程的应用与编码初始化以及写密码的过程的应用与编码 4.24.2 管理界面的设计管理界面的设计 4.2.14.2.1 管理主界面设计管理主界面设计 图 5 锁管理界面 4.2.4.2.2 2 分类管理模块的设计分类管理模块的设计 图 6 添加客户界面 管理员可以按照不同的分类方式进行分类,便于对客户的管理。 具体代码如下: 第 12 页 共 22 页 procedure TfMain.N

39、ewGroupExecute(Sender: TObject); var SNode: TTreeNode; PID: integer; begin SNode := GroupsTree.Selected; if Assigned(SNode) then begin PID := UnitDM.RockyDM.TGroups.FieldByName(GPID).AsInteger; UnitDM.RockyDM.TGroups.Append; UnitDM.RockyDM.TGroups.FieldByName(GPID).AsInteger := PID; UnitDM.RockyDM.T

40、Groups.FieldByName(GName).AsString := 新 分类; UnitDM.RockyDM.TGroups.Post; end; end; 4 4.2.3.2.3 添加客户模块的设计添加客户模块的设计 图 7 添加客户界面 在分类中添加一个客户,并写入数据库,用到了 Append 方法,该方法是 添加一条新记录到数据集中。UnitDm.RockyDM.TClients.Append 也就是将客户 信息记录到数据库的 clients 表当中。 具体代码如下: function AddClient():Boolean; 第 13 页 共 22 页 begin Result

41、:=True; with TfClientEdit.Create(nil) do begin Caption:=添加客户; UnitDm.RockyDM.TClients.Append; Module:=1; ShowModal; end; end; 4.2.44.2.4 编辑客户模块的设计编辑客户模块的设计 4.2.54.2.5 查看客户模块的设计查看客户模块的设计 图 9 客户查看界面 该窗口只能查看不能修改客户信息,所以定义 BC.Visible:=False。 具体代码如下: function ViewClient():Boolean; begin Result:=True; with

42、 TfClientEdit.Create(nil) do begin Caption:=编辑客户; BC.Visible:=False; Module:=3; ShowModal; 第 14 页 共 22 页 end; end; 4.2.64.2.6 RockeyRockey 初始化模块初始化模块 图 10 初始化界面 当 Rockey2 插入电脑时要读取它的密码和硬件 ID 以及客户的用户名,如果 它没有初始化则 Rockey2 的硬件 ID 为零,那么就需要进行初始化,写入密码, 以及用户名。如果 Rockey2 的硬件 ID 不为零表示该 Rockey2 已经被初始化,就 不再需要进行初

43、始化了,则显示初始化失败。 图 11 初始化失败 初始化以后,还需要将 Rockey2 的信息写入对应客户的资料中去,就是将 Rockey2 的用户名,密码,以及硬件 ID 号记录下来。 procedure TfMain.ReadRockeyExecute(Sender: TObject); var GID, CID, KID: integer; Pass, HID, Owner, APass: string; begin if not ReadPass(Pass, HID, Owner) then begin /钥匙没有初始化或者不是为 rockey 提供的钥匙 if HID = 0 the

44、n begin /钥匙没有初始化 if InitRockyQuery(False) then begin /写入密码 ShowMessage(成功初始化!); 第 15 页 共 22 页 APass := GenPass; if WritePass(APass) then ShowMessage(密码写入成功) else ShowMessage(密码写入失败); end else ShowMessage(初始化失败!); exit; end; if HID 0 then begin KID := QRockey.FieldByName(KID).AsInteger; CID := QRocke

45、y.FieldByName(KCID).AsInteger; QRockey.Close; QS := Format(Find_Group_By_CID, CID); QRockey.SQL.Clear; QRockey.SQL.Add(QS); QRockey.Open; if QRockey.RecordCount 0 then begin GID:=QRockey.FieldByName(CGID).AsInteger; Result:=True; end; QRockey.Close; end; ; end; 为了程序在运行的时候能够动态的找到数据库文件,我采用的 ExtractFil

46、ePath 函数,来指定程序执行的动态路径。 DbFile:=ExtractFilePath(Application.ExeName)+DBRockys.abs; Rockys.DatabaseFileName:=DbFile; 第 17 页 共 22 页 结结 论论 经过这段时间的紧张工作,已经完成了 USB Key 文件加密系统基本功能的 设计和实现。系统实现了管理员对客户信息的分类、添加、编辑、查看,对客 户的 Rockey2 进行初始化的功能,以及对文件的加密和解密。 本系统的安全性高和可移植性好的特点,并且界面简单、易用。 1 1问题分析问题分析 USB key 文件加密系统是曹林和

47、康桃仪共同完成的第一个项目,通过这次 毕业设计学到了很多知识,进一步掌握了 Delphi 语言。虽然完成了系统基本功 能的设计和实现,但是由于能力和时间有限,功能上还有很多不足之处。例如: 本系统对用户权限问题只实现了一个权限管理,这还不能满足一个企业 正常运营的需求。 对于 Rockey2 硬件 ID 是每个 Rockey2 具有不同的硬件 ID,在管理员进 行复制的时候,有可能找不到客户拥有的对文件加密时密码一样而硬件 ID 号不 一样的哪个 Rockey2。 2 2改进方案改进方案 对用户权限的问题可以针对不同的情况设置多个用户类型,赋予这些用 户类型不同的权限。比如,可以在本系统中添加

48、系统管理员这一用户类型,来 对整个系统进行维护与管理。 在为每把 Rockey2 设定一个与硬件 ID 号不一样的号码软件 ID 一来识别 该把 Rockey2。 参考文献参考文献 1 林华聪,余剑锋.Delphi 6 数据库设计思想与实践M,冶金工业出版社, 2002.10 2 郭旭,周建明.Delphi 6 应用开发指南M,清华大学出版社,2002.1 3 李维. Delphi 7 高效数据库程序设计M,机械工业出版社,2003.1 4刘子锐. Delphi 数据库开发自学教程M,清华大学出版社,2003.9 5 吴天准. Delphi 7 程序设计技巧与实例M,中国铁道出版社,2003.5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1