《毕业设计(论文)USB KEY文件加密系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)USB KEY文件加密系统的设计与实现.doc(21页珍藏版)》请在三一办公上搜索。
1、USB KEY 文件加密系统的设计与实现摘 要 随着信息技术的飞速发展,文件的安全性越来越被重视。为了实现对个人重要信息的加密,防止别人窃取个人的文件信息,提高文件的安全性,文件加密成为了一个重要的课题。本设计为了解决用户记忆烦琐的密码问题,以软、硬件相结合的方式,实现了文件加密和解密的功能。具有操作简单、稳定性高、兼容性好、速度快等特点。该系统使用Rockey2加密锁,用Delphi进行开发。本系统分为两部分,一部分是文件的加密解密;另一部分是加密锁的管理工具。后一部分由本人完成。本文主要介绍了USB KEY文件加密工具的总体设计和详细设计思路以及应用和编码。在总体设计中主要介绍了设计该工具
2、的需求分析、系统的选型、以及Rockey2加密锁的介绍。在详细设计中主要介绍了系统功能的分析、Rockey2加密锁的内存分配、以及数据库的相关设计。在应用和编码部分主要介绍了硬件的安装,初始化、写用户名和密码的应用和编码,管理界面的设计以及数据库的相关操作。最后介绍了系统的不足以及改进方案。关键字:USB;加密;Delphi;管理 The Files Encryption Tool Based on USB-KEY USB -KEY Management SystemAbstractWith the rapid development of IT, the security of the fi
3、les 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 to solve the problem that users passwords are remem
4、bered 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 Key, developed with Delphi. This system has two part
5、s, 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 USB KEY file encryption tool. It introduces the requ
6、irements 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 detailed design. Besides, in the aspect of application
7、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 and how to improve it.Key word: USB; Encryption; De
8、lphi; Management.目 录论文总页数:22页 1 引 言11.1选题背景11.2国内外研究现状11.3本设计研究的意义11.4本设计研究的方法12 USB KEY文件加密工具总体设计22.1USB KEY文件加密工具需求分析22.2系统选型32.2.1设计语言:Delphi32.2.2数据库的选择42.2.3开发工具的选择42.2.4开发硬件的选择52.3 ROCKEY2加密锁52.3.1 Rockey2加密锁简介52.3.2 Rockey2加密锁特点52.3.3 Rockey2加密锁优点52.3.4 Rockey2 加密锁要点说明63 USB KEY文件加密工具系统详细设计63
9、.1 系统功能模块分析63.2ROCKEY2加密锁内存分配73.2数据库设计83.2.1数据库需求分析83.2.2数据库实体关系设计83.2.3数据库逻辑设计94应用以及编码104.1初始化以及写密码的过程的应用与编码104.2管理界面的设计124.2.1管理主界面设计124.2.2分类管理模块的设计134.2.3添加客户模块的设计144.2.4编辑客户模块的设计154.2.5查看客户模块的设计164.2.6 Rockey 初始化模块164.3数据库操作18结 论19参考文献201 引 言1.1选题背景 随着社会高科技,商品经济化突飞猛进的发展,计算机的应用已经普及到经济和社会生活的各个领域。
10、长期以来人们使用各种加密技术以保证计算机中信息的安全,防止被一些有不良用心的人看到或则破坏。在信息时代,信息可以帮助团体和个人,使他们受益,同时,信息也可以对他们构成威胁,造成破坏。在激烈竞争的社会中,大家都会想尽办法获取对方的资料。因此客观上就需要有一种强有力的安全措施来保护我们的机密数据不被窃取和破坏。1.2国内外研究现状在日常的应用中,面对很多熟知的压缩软件和加密软件,例如WinRaR、WinZip等,这些软件也逐渐成为了当前大家默认的业界应用标准。然而,也正是它们的通用性和普遍性使它们缺乏个性化的应用特色,采用口令保护的方式对压缩文件进行加密也是形同虚设,有许多破解软件都能够轻而易举地
11、获取口令。面对WinRaR和WinZip自身的不足。比如密码太长用户就不方便记忆,有可能会忘记,密码太短又会不安全。如果利用扩展硬件(USB Key)来进行文件的加密和解密,那么就可以有效避免上面的问题。因此这样就不需要手工来进行密码的输入,而将加密和解密的密码是保存在扩展硬件当中的。1.3本设计研究的意义如果使用硬件来进行文件的加密具有访问速度快、可靠性高、保密性好、寿命长等优点。但是以前加密硬件成本较高,往往用在对安全要求相对较高的场合。随着硬件成本的降低,这种设备已经可以被个人所接受。因此本文描述了一种使用低成本USB Key来辅助进行加密的文件加密系统,可以广泛的应用在个人信息的保护和
12、企业重要文件保护当中。1.4本设计研究的方法本设计分为两个部分,由两个人共同完成。一部分是利用低成本的USB Key来做一个对文件的加密工具;一部分是利用Delphi编写的一个相对简单的管理软件来实现对USB Key的管理。加密工具符合大多用户操作WinRAR的习惯,可以方便的对文件进行加密和解密的操作,同时具有方便、易用、安全的特点。管理软件能对用户以及USB KEY进行简单的管理,当用户拥有的USB KEY遗失时可以有效的复制一把USB KEY,同时管理界面简单、易用的特点。2 USB KEY文件加密工具总体设计2.1USB KEY文件加密工具需求分析当前软件加密方法多种多样,基本上来说可
13、以分为依赖特定硬件的加密方案和不依赖硬件的加密方案。依赖特定硬件的加密方案:软盘加密、卡加密、光盘加密。软盘加密和卡加密曾经作为一种很好的加密工具,现在已经很少使用了,这是因为用户很少使用软驱,那么软盘加密技术也就没怎么使用。90年代初,各种各样的汉卡涌现出来,并轰动一时,而现在也很少再使用。光盘加密是一种新的加密方式。既然有软盘加密成功在先,为什么不能有光盘加密呢?但实际操作上确实是有一些问题的,因为光盘有ISO9660标准协议规定,其可控制性比软盘还要严格,想找出一种只能运行而不能复制的方式确实很困难。不依赖硬件的加密方案:利用WinRAR、WinZip等压缩软件来进行文件的加密。利用压缩
14、软件来实现对文件的加密是现在比较流行的一种方式,但是其有很多的不足,例如向密码太长用户就不方便记忆,有可能会忘记,密码太短又会不安全。并且现在网上有很多的针对WinRAR、WinZip的破解工具,利用破解工具很容易就把用户的密码给破解了,这样用户对文件的加密就如同虚设。本设计就是利用软件和硬件相结合的方式来实现对文件进行加密。这种方式就是使用软件加密锁(USB KEY)来实现。也就是一个插在计算机USB接口上火柴盒大小的设备,国内俗称“加密狗”。在加密锁内部存有一定的数据和算法,计算机可以与之通讯来获得其中的数据,或通过加密锁进行某种计算。软件无法离开加密锁而运行。由于它不像卡加密那样需要打开
15、计算机的机箱来安装,但又像加密卡那样可以随时访问,而且访问速度很快,所以一推出就受到软件开发者们的青睐。目前,所有的加密锁都提供了可编程的接口。用户可以控制加密锁中的内容,在程序中通过加密锁的接口任意访问加密锁。利用USB KEY对文件加密应尽量满足用户的需求,使用户对文件加密和解密的过程操作简单,使用方便。并且对密码也要有完善的管理。使用USB KEY可以在USB Key中保存密码,不在需要用户去手动输入密码,解决了用户去记忆复杂密码的过程。鉴于越来越多的人使用USB KEY来保护自己的个人文件。但是许多的意外事件可能会降临,一旦USB KEY被遗失,那么后果将是巨大的。所以开发一个管理性的
16、软件记录拥有USB KEY的用户相关信息、USB KEY的硬件ID、以及对文件加密的密码是十分必要且有效的方法。利用USB KEY文件加密需要从两个方面去实现用户的需求,第一:USB KEY的管理。第二:客户端应用。在USB KEY的管理方面:主要包括分类管理、客户添加、查看、编辑,初始化Rockey2这几个方面的功能。分类管理是对用户按什么方式进行分类管理(比如按时间,地区等),由管理员自己设定分类方式,这样便于方便管理用户;管理员实现对用户的添加,查看,编辑;管理员对USB KEY进行初始化,一把新的USB KEY第一次使用,必须进行初始化,初始化也就是根据种子生成对文件加密的密钥,以及U
17、ID,并且还要记录USB KEY的信息(包括对文件加密的密钥,硬件ID等)到管理软件中,以便以后对USB KEY进行复制。在客户端方面,应该尽量使操作简单,不麻烦,就类似winrar对文件加密的操作一样。这样才能被用户接受。这一方面主要完成文件的加密和解密操作。其系统结构图如下:USB Key 文件 加密 系统文件加密解密管理系统图1系统整体结构图USB KEY文件加密系统的客户端主要实现对文件的加密和解密;其管理系统主要实现对对用户以及拥有的USB Key信息进行操作管理。2.2系统选型2.2.1设计语言:DelphiDelphi是Borland公司研制的新一代可视化开发工具,可在Windo
18、ws3.x、Windows95、Windows NT等环境下使用。它拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言Object Pascal和基于部件的开发结构框架。Delphi它提供了100多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。开发人员也可以根据自己的需要修改部件或用Delphi本身编写自己的部件。主要特点如下: (1)直接编译生成可执行代码,编译速度快。(2)支持将存取规则分别交给客户机或服务器处理的两种方案,而且允许开发人员建立一个简单的部件或部件集合,封装起所有的规则,并独立于服务器和客户机,所有的数据转移通过这些部件来完成。 (3)提供了
19、许多快速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的应用。利用项目模板和专家生成器可以很快建立项目的构架,然后根据用户的实际需要逐步完善。 (4)具有可重用性和可扩展性。(5)具有强大的数据存取功能。它的数据处理工具BDE(Borland Database Engine)是一个标准的中介软件层,可以用来处理当前流行的数据格式,如x Base、Paradox等,也可以通过BDE的SQL Link直接与Sybase、SQL Server、Informix、Oracle等大型数据库连接。 Delphi既可用于开发系统软件,也适合于应用软件的开发。从上可以看出Delphi在开发数据
20、库性质的管理软件十分方便和快捷。2.2.2数据库的选择USB key文件加密管理系统的数据库选用的是Absolute Database。Absolute Database是 Borland数据库引擎(BDE)的替代品。具有高速,健壮,易用的特点。使用Absolute Database不需要特别的安装和配置。该系统在连接数据库用到了以下几个数据库引擎组件,如表1所示:表1组件表组件中文名用途TDataSource数据源组件作为数据集组件(TTable,TQuery,TStoredProc)与数据控制组件(TDBGrid,TDBEdit)之间传送数据的通道。TTable数据表组件通过BDE存取磁盘
21、上数据库表,再为TDataSource提供数据源,使得数据控制组件能够有效地从TTable中访问数据并能显示和编辑其中的数据。TQuery数据查询组件利用SQL语言访问数据库表中的数据,再为TDataSource提供数据源,实现数据控制组件对数据库的访问。TDatabase数据库组件当应用程序要登录到一个远程服务器上的数据库时,可以用该组件来建立应用程序与数据库永久性的连接。2.2.3开发工具的选择现在有许多的第三方控件支持Delphi, USB key文件加密管理系统使用了Dev Express DB Tress和Dev Express Quantum Grid这两个控件1) Express
22、 DB Tress:强大的树型结构列表的控件。Express DB Tress为VCL开发者们提供了一个最高级的树形列表技术。Express DB Tress 是一个功能强大,已打包的组件库,它可以帮助你创建杀手级软件,为你的最终用户提供难以置信的功能,只需要很少的代码就可以实现用户的需求。2) Express Quantum Grid:表格控件。它是树形列表控件和数据编辑控件的控件库,适合于Delphi和C+ Builder平台下的应用开发。该组件是基于底层开发出来的,而且是纯粹的本地化的可视控件库,特别设计用来开发引人注目的应用程序,将令人难以置信的特性传递给终端用户,从而使你的程序产品在
23、激烈的竞争中取得优先地位,而实现这一切不需要编写简单的一行代码。2.2.4开发硬件的选择利用USB KEY对文件进行加密和解密时,都需要有一把USB KEY硬件锁作为支配。在众多的KEY中选用Rockey2加密锁作为这个USB KEY。因为Rockey2加密锁是安全性比较高的免驱动的USB 设备,同时售价低。采用的是传统 EPROM 结构。它制作容易,使用方便。而且它方便携带,记录的空间也比较大。适合各类人员对文件进行加密。利用Rockey2已经可以满足该设计的需求。2.3 ROCKEY2加密锁2.3.1 Rockey2加密锁简介Rockey2加密锁是为软件开发商提供的一种智能型的软件加密工具
24、,它包含一个安装在计算机并行口或 USB 口上的硬件,及一套适用于各种语言的接口软件和工具软件。加密狗基于硬件加密技术,其目的是通过对软件与数据的加密防止知识产权被非法使用。Rockey2加密锁是一种比较简化型的加密锁。适合各类人员对信息进行加密。用户可以对自己电脑里面的私人信息进行加密,公司可以对内部机密信息进行加密等等。Rockey2加密锁是一款可以支持软件保护应用和身份认证应用的多功能,免驱动的USB 设备。 2.3.2 Rockey2加密锁特点其特点如下:a) USB无驱设备 b) 全球唯一硬件ID c) 提供外壳加密工具 d) 2.5K用户使用空间 e) 标准USB1.1设备,支持U
25、SB2.0接口 f) 提供多种软件接口:Delphi、Foxpro、Java、PB、VB、VC、VS.NET等2.3.3 Rockey2加密锁优点Rockey2具有以下一些优点:(1)兼容性好它具有高度的透明性,特别是对多个相同的Rockey2加密锁也可以使用USB HUB并联在一起使用,相互之间不会有干扰。(2)速度快对于使用Rockey2加密锁加密后的软件,其运行速度同加密前的区别并不大,它能够在很短的时间内处理完毕,保证用户程序的顺畅运行。(3)使用简便Rockey2加密锁最大限度的简化了接口。可以在很短的时间内掌握它的使用方法,从而大大的节约了时间。2.3.4 Rockey2 加密锁要
26、点说明每一把 Rockey2 加密锁除了有 1 个独一无二的“硬件ID外”,还有 1 个用户可设定的“用户ID”,我们定义“硬件ID”为 HID,“用户ID”为 UID,这 2 个 ID 都是 32bit 位的 DWORD 数值。每把加密锁都是倚赖这 2 个 ID 作为独一无二的识别标志。 当对Rockey2 加密锁还没有进行初始化的时候,缺省的 UID 为 0,这时候虽然能够使用这个等于0 的 UID 来打开加密锁并进行读写操作,但无法获得正确的 HID,因为当 UID 等于 0 的时候,表示的是出厂状态,这时候 HID 也会返回 0。只有当用户设定了自己的 UID 以后,才能够获得正确的
27、HID。 在用户生成 UID 的时候需要给出1个长度不超过64个字节的字符串作为种子,加密锁会根据这个种子生成 UID,这个生成算法是在加密锁内部完成的,而且是不可逆的,也就是说,只有生成者才知道什么样的种子能生成什么样的 UID,别的人即使知道 UID,也能够调用这个计算过程,但因为不知道种子是什么,是无法生成你的 UID 的。 另外在生成 UID 的时候,能够指定加密锁的 EPROM 是否是可写的,如果设定为不可写,整个 EPROM 处于写保护状态。3 USB KEY文件加密工具系统详细设计3.1 系统功能模块分析总体模块分为KEY的管理和客户端两部分。在KEY的管理方面我们需要把KEY里
28、面记录的信息都保存到数据库里面,方便我们查询、修改、添加和删除KEY里面的信息。对每把锁都进行管理,防止有同号锁出现。如果加密锁因为某种情况损坏或者是丢失了,那么可以通过数据库里面记录的信息复制一把相同的锁,这样就不用担心由于找不到锁而不能对已加密的文件进行解密操作。对加密锁进行更加完善的管理,才能进一步保障被加密文件的安全,让用户才会更加放心的使用。客户端部分主要是完成操作方面的功能。客户端主要包括两方面-文件加密和文件解密。对文件进行加密时,要利用USB KEY中的密码对文件进行加密。这就需要从KEY里面读取出密码并利用该密码对文件进行加密。并且对该密码进行MD5换算。得到密码的MD5值,
29、把这个值称为XID。对文件进行解密时,先从KEY里面读取出密码,然后对密码进行MD5换算,如果换算后的XID与被加密文件的XID一样就可以成功对文件进行解密,否则不能对文件解密。该设计主要是管理员对用户以及拥有的USB Key信息进行操作管理,功能说明如下:1)分类管理:设置创建新分类和子分类。通过按地区、时间等对用户进行分类,以方便进行管理。2)客户信息管理:实现对客户信息的添加、删除和修改。也就是系统中的添加、编辑和查看客户模块。 3)Rockey2的初始化:实现对Rockey2的初始化,通过种子生成对文件加密的密钥,还有UID。初始化过后并把Rockey2的相关信息(包括密钥和硬件ID)
30、记录到管理系统中。 系统功能图如下:USB 文件加密系统KEY的管理客户端客户分类管理添加客户信息编辑客户信息查看客户信息KEY的初始化加密解密图2系统功能结构图3.2ROCKEY2加密锁内存分配Rockey2加密锁总共有2560个字节,为了便于管理,把USB KEY的存储空间分配成5个段,每个段为512个字节。在把每个段划分成16个存储区,每个区32个字节。这样便于对KEY的存储空间进行统一的分配和管理。以后向KEY的存储区里面写入的信息时,信息都会自动保存到相关的位置。表2内存分配示意图123456789101112131415160nullsnMd5un12341) NULL:空值,没使
31、用2) SN:密码3) MD5:密码的MD5值,用于识别用户 4) UN:用户名3.2数据库设计3.2.1数据库需求分析作为一个具有一定应用价值的管理系统,从本质上说其操作的对象为数据库中存储的具体记录。因此,不仅需要所使用的数据库系统具有比较高的稳定性、安全性下保持足够响应的能力,还要求设计者清楚需求,做出合理的数据库逻辑结构设计,以提高数据库的利用效率和减少数据冗余。以这种思想作为设计策略,分析出系统的以下几项需求:(1)管理员可以实现对用户的分类(2)管理员可以实现对用户信息的添加,编辑和查看。(3)管理员可以初始化用户拥有的Rockey23.2.2数据库实体关系设计通过以上的需求分析,
32、设计出数据库的逻辑结构ER图,从这种逻辑结构有可以建立数据库的物理结构即表结构。根据需求设计出三个数据表,分别是:客户信息表(clients),key表(keys),分类表(groups)其结构及关系如图1所示。图4客户与KEY关系图图3客户与客户分类关系图客户分类客 户客 户拥 有KEY包 含3.2.3数据库逻辑设计确定了数据库的逻辑关系和数据结构之后,进一步将以上所述的四个数据表由概念结构转化为数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。表3所示为客户信息表(clients),记录了管理员所管理的客户的相关信息。表3 clients列名数据类型长度CGID(PK)INTEGER
33、4CNameSTRING50CAddressSTRING50CContactSTRING20CPhoneSTRING100CMobileSTRING40CFaxSTRING40CWebSTRING25CEmailSTRING40表4所示为分类表(groups),记录管理员按照什么方式进行分类。表4 groups列名数据类型长度GID(PK)AUTOINC4GPIDSTRING20GNameSTRING40表5所示为keys表,记录了客户所拥有的所有Rockey2的信息,包括对文件加密解密的密码以及硬件ID号。表5 keys列名数据类型长度KID(PK)AUTOINC4KCIDSTRING20K
34、HIDSTRING40KPassSTRING32KOtherSTRING204应用以及编码4.1初始化以及写密码的过程的应用与编码4.2管理界面的设计4.2.1管理主界面设计图5锁管理界面4.2.2分类管理模块的设计图6添加客户界面管理员可以按照不同的分类方式进行分类,便于对客户的管理。具体代码如下:procedure TfMain.NewGroupExecute(Sender: TObject);var SNode: TTreeNode; PID: integer;begin SNode := GroupsTree.Selected; if Assigned(SNode) then begi
35、n PID := UnitDM.RockyDM.TGroups.FieldByName(GPID).AsInteger; UnitDM.RockyDM.TGroups.Append; UnitDM.RockyDM.TGroups.FieldByName(GPID).AsInteger := PID; UnitDM.RockyDM.TGroups.FieldByName(GName).AsString := 新分类; UnitDM.RockyDM.TGroups.Post; end;end;4.2.3添加客户模块的设计图7 添加客户界面在分类中添加一个客户,并写入数据库,用到了Append方法,
36、该方法是添加一条新记录到数据集中。UnitDm.RockyDM.TClients.Append也就是将客户信息记录到数据库的clients表当中。具体代码如下:function AddClient():Boolean;begin Result:=True; with TfClientEdit.Create(nil) do begin Caption:=添加客户; UnitDm.RockyDM.TClients.Append; Module:=1; ShowModal; end;end;4.2.4编辑客户模块的设计4.2.5查看客户模块的设计图9 客户查看界面该窗口只能查看不能修改客户信息,所以
37、定义BC.Visible:=False。具体代码如下:function ViewClient():Boolean;begin Result:=True; with TfClientEdit.Create(nil) do begin Caption:=编辑客户; BC.Visible:=False; Module:=3; ShowModal; end;end;4.2.6 Rockey 初始化模块 图10 初始化界面当Rockey2插入电脑时要读取它的密码和硬件ID以及客户的用户名,如果它没有初始化则Rockey2的硬件ID为零,那么就需要进行初始化,写入密码,以及用户名。如果Rockey2的硬件
38、ID不为零表示该Rockey2已经被初始化,就不再需要进行初始化了,则显示初始化失败。 图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
39、提供的钥匙 if HID = 0 then begin /钥匙没有初始化 if InitRockyQuery(False) then begin /写入密码 ShowMessage(成功初始化!); APass := GenPass; if WritePass(APass) then ShowMessage(密码写入成功) else ShowMessage(密码写入失败); end else ShowMessage(初始化失败!); exit; end; if HID 0 then begin /不是rockey的钥匙 ShowMessage(该钥匙已经初始化,但是好像不是为rockey使用的
40、!); exit; end; end else begin if RockyDM.FindKey(HID, GID, CID, KID) then begin RockyDM.TGroups.Locate (GID, GID, loCaseInsensitive); RockyDM.TClients.Locate(CID, CID, loCaseInsensitive); RockyDM.TKeys.Locate(KHID, HID, loCaseInsensitive); end else begin /数据库中没有记录,添加到数据库 RockyDM.TKeys.Append; RockyD
41、m.TKeys.FieldValuesKHID := HID; RockyDm.TKeys.FieldValuesKPass := Pass; RockyDM.TKeys.Post; ShowMessage(数据添加成功); end; end; ;end;4.3数据库操作下面介绍如何找到客户对应的Rockey2加密锁,首先要定义2个常量Find_Client_By_HID,Find_Group_By_CID。这两个常量定义了2条SQL语句。Find_Client_By_HID = Select KID, KCID from Keys Where KHID=%s;它定义了从keys表中查询硬件I
42、D等于%s的客户信息。Find_Group_By_CID = Select CGID from Clients Where CID=%d;它定义了从clients表中查询客户ID等于%d的客户在哪个分类当中。当客户的硬件ID及hid与定义的常量也就是定义的查询语句想匹配的时候就将其硬件id号添加到数据库,以便以后Rockey2丢失的时候,查到其丢失的加密锁,然后复制一把与以前的加密锁加密密码一样的锁。其代码如下:function TRockyDM.FindKey(HID: string; var GID, CID, KID: integer): boolean;var QS: string;b
43、egin Result := False; QRockey.Close; QS := Format(Find_Client_By_HID, HID); QRockey.SQL.Clear; QRockey.SQL.Add(QS); QRockey.Open; if QRockey.RecordCount 0 then begin KID := QRockey.FieldByName(KID).AsInteger; CID := QRockey.FieldByName(KCID).AsInteger; QRockey.Close; QS := Format(Find_Group_By_CID,
44、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;为了程序在运行的时候能够动态的找到数据库文件,我采用的ExtractFilePath函数,来指定程序执行的动态路径。DbFile:=ExtractFilePath(Application.ExeName)+DBRockys.abs;Ro
45、ckys.DatabaseFileName:=DbFile;结 论经过这段时间的紧张工作,已经完成了USB Key文件加密系统基本功能的设计和实现。系统实现了管理员对客户信息的分类、添加、编辑、查看,对客户的Rockey2进行初始化的功能,以及对文件的加密和解密。本系统的安全性高和可移植性好的特点,并且界面简单、易用。1问题分析USB key文件加密系统是曹林和康桃仪共同完成的第一个项目,通过这次毕业设计学到了很多知识,进一步掌握了Delphi语言。虽然完成了系统基本功能的设计和实现,但是由于能力和时间有限,功能上还有很多不足之处。例如:本系统对用户权限问题只实现了一个权限管理,这还不能满足一个企业正常运营的需求。对