毕业设计(论文)USB KEY文件加密系统的设计与实现_第1页
毕业设计(论文)USB KEY文件加密系统的设计与实现_第2页
毕业设计(论文)USB KEY文件加密系统的设计与实现_第3页
毕业设计(论文)USB KEY文件加密系统的设计与实现_第4页
毕业设计(论文)USB KEY文件加密系统的设计与实现_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、思路以及应用和编码。在总体设计中主要介绍了设计该工具的需求分析、系统的选型、以及 rockey2 加密锁的介绍。在详细设计中主要介绍了系统功能的分析、rockey2 加密锁的内存分配、以及数据库的相关设计。在应用和编码部分主要介绍了硬件的安装,初始化、写用户名和密码的应用和编码,管理界面的设计以及数据库的相关操作。最后介绍了系统的不足以及改进方案。关键字:关键字:usb;加密;delphi;管理 the files encryption tool based on usb-key usb -key management systemabstractwith the rapid developm

3、ent 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 to solve the probl

4、em 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 key, developed with

5、 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 usb key file encryp

6、tion 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 detailed design. besid

7、es, 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 and how to improve

8、 it.key word: usb; encryption; delphi; management.目目 录录论文总页数:22 页 1 引 言.11.1 选题背景 .11.2 国内外研究现状 .11.3 本设计研究的意义 .11.4 本设计研究的方法 .12 usb key 文件加密工具总体设计 .22.1usb key 文件加密工具需求分析 .22.2 系统选型 .32.2.1 设计语言:delphi .32.2.2 数据库的选择 .42.2.3 开发工具的选择 .42.2.4 开发硬件的选择 .52.3 rockey2 加密锁 .52.3.1 rockey2 加密锁简介 .52.3.2 r

9、ockey2 加密锁特点 .52.3.3 rockey2 加密锁优点 .52.3.4 rockey2 加密锁要点说明.63 usb key 文件加密工具系统详细设计 .63.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 编辑客户模

10、块的设计 .154.2.5 查看客户模块的设计 .164.2.6 rockey 初始化模块.164.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 本设计研究的方法本设计研究的方法本设计分为两个部分,由两个人共同完成。一部分是利用低成本的 usb key 来做一个对文件的加密工具;一部分是利用 delphi 编写的一个相对简单的管理软件来

13、实现对 usb key 的管理。加密工具符合大多用户操作 winrar 的习惯,可以方便的对文件进行加密和解密的操作,同时具有方便、易用、安全的特点。管理软件能对用户以及 usb key 进行简单的管理,当用户拥有的 usb key 遗失时可以有效的复制一把 usb key,同时管理界面简单、易用的特点。第 2 页 共 22 页2 2 usbusb keykey 文件加密工具总体设计文件加密工具总体设计2 2. .1 1usbusb keykey 文件加密工具需求分析文件加密工具需求分析当前软件加密方法多种多样,基本上来说可以分为依赖特定硬件的加密方案和不依赖硬件的加密方案。依赖特定硬件的加密

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

15、的不足,例如向密码太长用户就不方便记忆,有可能会忘记,密码太短又会不安全。并且现在网上有很多的针对 winrar、winzip 的破解工具,利用破解工具很容易就把用户的密码给破解了,这样用户对文件的加密就如同虚设。本设计就是利用软件和硬件相结合的方式来实现对文件进行加密。这种方式就是使用软件加密锁(usb key)来实现。也就是一个插在计算机 usb 接口上火柴盒大小的设备,国内俗称“加密狗” 。在加密锁内部存有一定的数据和算法,计算机可以与之通讯来获得其中的数据,或通过加密锁进行某种计算。软件无法离开加密锁而运行。由于它不像卡加密那样需要打开计算机的机箱来安装,但又像加密卡那样可以随时访问,

16、而且访问速度很快,所以一推出就受到软件开发者们的青睐。目前,所有的加密锁都提供了可编程的接口。用户可以控制加密锁中的内容,在程序中通过加密锁的接口任意访问加密锁。利用 usb key 对文件加密应尽量满足用户的需求,使用户对文件加密和解密的过程操作简单,使用方便。并且对密码也要有完善的管理。使用 usb key可以在 usb key 中保存密码,不在需要用户去手动输入密码,解决了用户去记忆复杂密码的过程。鉴于越来越多的人使用 usb key 来保护自己的个人文件。但是许多的意外事件可能会降临,一旦 usb key 被遗失,那么后果将是巨大的。所以开发一个管理性的软件记录拥有 usb key 的

17、用户相关信息、usb key 的硬件 id、以及对文件加密的密码是十分必要且有效的方法。利用 usb key 文件加密需要从两个方面去实现用户的需求,第一:usb key的管理。第二:客户端应用。在 usb key 的管理方面:主要包括分类管理、客户添加、查看、编辑,初第 3 页 共 22 页始化 rockey2 这几个方面的功能。分类管理是对用户按什么方式进行分类管理(比如按时间,地区等) ,由管理员自己设定分类方式,这样便于方便管理用户;管理员实现对用户的添加,查看,编辑;管理员对 usb key 进行初始化,一把新的 usb key 第一次使用,必须进行初始化,初始化也就是根据种子生成对

18、文件加密的密钥,以及 uid,并且还要记录 usb key 的信息(包括对文件加密的密钥,硬件 id 等)到管理软件中,以便以后对 usb key 进行复制。在客户端方面,应该尽量使操作简单,不麻烦,就类似 winrar 对文件加密的操作一样。这样才能被用户接受。这一方面主要完成文件的加密和解密操作。其系统结构图如下:图 1 系统整体结构图usb key 文件加密系统的客户端主要实现对文件的加密和解密;其管理系统主要实现对对用户以及拥有的 usb key 信息进行操作管理。2 2. .2 2 系统选型系统选型2 2. .2 2. .1 1 设计语言设计语言:delphidelphidelphi

19、 是 borland 公司研制的新一代可视化开发工具,可在windows3.x、windows95、windows nt 等环境下使用。它拥有一个可视化的集成开发环境(ide),采用面向对象的编程语言 object pascal 和基于部件的开发结构框架。delphi 它提供了 100 多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。开发人员也可以根据自己的需要修改部件或用delphi 本身编写自己的部件。主要特点如下: (1)直接编译生成可执行代码,编译速度快。(2)支持将存取规则分别交给客户机或服务器处理的两种方案,而且允许开发人员建立一个简单的部件或部件集合,封装起所

20、有的规则,并独立于服务器和客户机,所有的数据转移通过这些部件来完成。 (3)提供了许多快速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的应usb key 文件 加密 系统文件加密解密管理系统第 4 页 共 22 页用。利用项目模板和专家生成器可以很快建立项目的构架,然后根据用户的实际需要逐步完善。 (4)具有可重用性和可扩展性。(5)具有强大的数据存取功能。它的数据处理工具 bde(borland database engine)是一个标准的中介软件层,可以用来处理当前流行的数据格式,如 x base、paradox 等,也可以通过 bde的 sql link 直接与 syb

21、ase、sql server、informix、oracle 等大型数据库连接。 delphi 既可用于开发系统软件,也适合于应用软件的开发。从上可以看出 delphi 在开发数据库性质的管理软件十分方便和快捷。2 2. .2 2.2.2 数据库的选择数据库的选择usb key 文件加密管理系统的数据库选用的是 absolute database。absolute database 是 borland 数据库引擎(bde)的替代品。具有高速,健壮,易用的特点。使用 absolute database 不需要特别的安装和配置。该系统在连接数据库用到了以下几个数据库引擎组件,如表 1 所示:表 1

22、 组件表组件中文名用途tdatasource数据源组件作为数据集组件(ttable,tquery,tstoredproc)与数据控制组件(tdbgrid,tdbedit)之间传送数据的通道。ttable数据表组件通过 bde 存取磁盘上数据库表,再为 tdatasource 提供数据源,使得数据控制组件能够有效地从 ttable 中访问数据并能显示和编辑其中的数据。tquery数据查询组件利用 sql 语言访问数据库表中的数据,再为 tdatasource提供数据源,实现数据控制组件对数据库的访问。tdatabase数据库组件当应用程序要登录到一个远程服务器上的数据库时,可以用该组件来建立应用

23、程序与数据库永久性的连接。2 2. .2 2. .3 3 开发工具的选择开发工具的选择现在有许多的第三方控件支持 delphi, usb key 文件加密管理系统使用了dev express db tress 和 dev express quantum grid 这两个控件1) express db tress:强大的树型结构列表的控件。express db tress 为 vcl 开发者们提供了一个最高级的树形列表技术。express db tress 是一个功能强大,已打包的组件库,它可以帮助你创建杀手级软件,为你的最终用户提供难以置信的功能,只需要很少的代码就可以实现用户的需求。2) e

24、xpress quantum grid:表格控件。第 5 页 共 22 页它是树形列表控件和数据编辑控件的控件库,适合于 delphi 和 c+ builder 平台下的应用开发。该组件是基于底层开发出来的,而且是纯粹的本地化的可视控件库,特别设计用来开发引人注目的应用程序,将令人难以置信的特性传递给终端用户,从而使你的程序产品在激烈的竞争中取得优先地位,而实现这一切不需要编写简单的一行代码。2 2. .2 2.4.4 开发硬件的选择开发硬件的选择利用 usb key 对文件进行加密和解密时,都需要有一把 usb key 硬件锁作为支配。在众多的 key 中选用 rockey2 加密锁作为这个

25、 usb key。因为 rockey2加密锁是安全性比较高的免驱动的 usb 设备,同时售价低。采用的是传统 eprom 结构。它制作容易,使用方便。而且它方便携带,记录的空间也比较大。适合各类人员对文件进行加密。利用 rockey2 已经可以满足该设计的需求。2.32.3 rockey2rockey2 加密锁加密锁2 .1 rockey2rockey2 加密锁简介加密锁简介rockey2 加密锁是为软件开发商提供的一种智能型的软件加密工具,它包含一个安装在计算机并行口或 usb 口上的硬件,及一套适用于各种语言的接口软件和工具软件。加密狗基于硬件加密技术,其目的是通过对软件与数

26、据的加密防止知识产权被非法使用。rockey2 加密锁是一种比较简化型的加密锁。适合各类人员对信息进行加密。用户可以对自己电脑里面的私人信息进行加密,公司可以对内部机密信息进行加密等等。rockey2 加密锁是一款可以支持软件保护应用和身份认证应用的多功能,免驱动的 usb 设备。 2 .2 rockey2rockey2 加密锁特点加密锁特点其特点如下:a) usb 无驱设备 b) 全球唯一硬件 id c) 提供外壳加密工具 d) 2.5k 用户使用空间 e) 标准 usb1.1 设备,支持 usb2.0 接口 f) 提供多种软件接口:delphi、foxpro、java、pb、

27、vb、vc、vs.net 等2 .3 rockey2rockey2 加密锁优点加密锁优点rockey2 具有以下一些优点:第 6 页 共 22 页(1)兼容性好它具有高度的透明性,特别是对多个相同的 rockey2 加密锁也可以使用usb hub 并联在一起使用,相互之间不会有干扰。(2)速度快对于使用 rockey2 加密锁加密后的软件,其运行速度同加密前的区别并不大,它能够在很短的时间内处理完毕,保证用户程序的顺畅运行。(3)使用简便rockey2 加密锁最大限度的简化了接口。可以在很短的时间内掌握它的使用方法,从而大大的节约了时间。2 .4 rockey2ro

28、ckey2 加密锁要点说明加密锁要点说明每一把 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。只

29、有当用户设定了自己的 uid 以后,才能够获得正确的 hid。 在用户生成 uid 的时候需要给出 1 个长度不超过 64 个字节的字符串作为种子,加密锁会根据这个种子生成 uid,这个生成算法是在加密锁内部完成的,而且是不可逆的,也就是说,只有生成者才知道什么样的种子能生成什么样的 uid,别的人即使知道 uid,也能够调用这个计算过程,但因为不知道种子是什么,是无法生成你的 uid 的。 另外在生成 uid 的时候,能够指定加密锁的 eprom 是否是可写的,如果设定为不可写,整个 eprom 处于写保护状态。3 3 usbusb keykey 文件加密工具系统详细设计文件加密工具系统详细

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

31、对文件进行加密时,要利用 usb key 中的密码对文件进行加密。这就需要从 key 里面读取出密码并利用该密码对文件进行加密。并且对该密码进行 md5 换算。得到密码的 md5 值,把这个值称为 xid。对文件进行解密时,先从 key 里面读取出密码,然后对密码进行 md5 换算,如果换算后的 xid 与被加密文件的 xid 一样就可以成功对文件进行解密,否则不能对文件解密。该设计主要是管理员对用户以及拥有的 usb key 信息进行操作管理,功能说明如下:1)分类管理:设置创建新分类和子分类。通过按地区、时间等对用户进行分类,以方便进行管理。2)客户信息管理:实现对客户信息的添加、删除和修

32、改。也就是系统中的添加、编辑和查看客户模块。 3)rockey2 的初始化:实现对 rockey2 的初始化,通过种子生成对文件加密的密钥,还有 uid。初始化过后并把 rockey2 的相关信息(包括密钥和硬件id)记录到管理系统中。 系统功能图如下:usb 文件加密系统key 的管理客户端客户分类管理添加客户信息编辑客户信息查看客户信息key的初始化加密解密图 2 系统功能结构图第 8 页 共 22 页3.2rockey23.2rockey2 加密锁内存分配加密锁内存分配rockey2 加密锁总共有 2560 个字节,为了便于管理,把 usb key 的存储空间分配成 5 个段,每个段为

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

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

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

36、tring25cemailstring40客户分类客 户图 3 客户与客户分类关系图图 4 客户与 key 关系图第 10 页 共 22 页表 4 所示为分类表(groups),记录管理员按照什么方式进行分类。表 4 groups列名数据类型长度gid(pk)autoinc4gpidstring20gnamestring40表 5 所示为 keys 表,记录了客户所拥有的所有 rockey2 的信息,包括对文件加密解密的密码以及硬件 id 号。表 5 keys列名数据类型长度kid(pk)autoinc4kcidstring20khidstring40kpassstring32kotherst

37、ring20第 11 页 共 22 页4 4 应用以及编码应用以及编码4.14.1 初始化以及写密码的过程的应用与编码初始化以及写密码的过程的应用与编码4.24.2 管理界面的设计管理界面的设计.1 管理主界面设计管理主界面设计图 5 锁管理界面.2 2 分类管理模块的设计分类管理模块的设计图 6 添加客户界面管理员可以按照不同的分类方式进行分类,便于对客户的管理。具体代码如下:第 12 页 共 22 页procedure tfmain.newgroupexecute(sender: tobject);var snode: ttreenode; pid: inte

38、ger;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.tgroups.fieldbyname(gname).asstring := 新分类; unitdm.rockydm.tgroups

39、.post; end;end;4 .3 添加客户模块的设计添加客户模块的设计图 7 添加客户界面在分类中添加一个客户,并写入数据库,用到了 append 方法,该方法是添加一条新记录到数据集中。unitdm.rockydm.tclients.append 也就是将客户信息记录到数据库的 clients 表当中。具体代码如下:function addclient():boolean;第 13 页 共 22 页begin result:=true; with tfclientedit.create(nil) do begin caption:=添加客户; unitdm.rockydm

40、.tclients.append; module:=1; showmodal; end;end;.4 编辑客户模块的设计编辑客户模块的设计.5 查看客户模块的设计查看客户模块的设计图 9 客户查看界面该窗口只能查看不能修改客户信息,所以定义 bc.visible:=false。具体代码如下:function viewclient():boolean;begin result:=true; with tfclientedit.create(nil) do begin caption:=编辑客户; bc.visible:=false; module:=3; show

41、modal;第 14 页 共 22 页 end;end;.6 rockeyrockey 初始化模块初始化模块 图 10 初始化界面当 rockey2 插入电脑时要读取它的密码和硬件 id 以及客户的用户名,如果它没有初始化则 rockey2 的硬件 id 为零,那么就需要进行初始化,写入密码,以及用户名。如果 rockey2 的硬件 id 不为零表示该 rockey2 已经被初始化,就不再需要进行初始化了,则显示初始化失败。 图 11 初始化失败 初始化以后,还需要将 rockey2 的信息写入对应客户的资料中去,就是将rockey2 的用户名,密码,以及硬件 id 号记录下来

42、。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 then begin /钥匙没有初始化 if initrockyquery(false) then begin /写入密码 showmessage(成功初始化!);第 15 页 共 22 页 ap

43、ass := genpass; if writepass(apass) then showmessage(密码写入成功) else showmessage(密码写入失败); end else showmessage(初始化失败!); exit; end; if hid 0 then begin /不是 rockey 的钥匙 showmessage(该钥匙已经初始化,但是好像不是为 rockey 使用的!); exit; end; end else begin if rockydm.findkey(hid, gid, cid, kid) then begin rockydm.tgroups.lo

44、cate (gid, gid, locaseinsensitive); rockydm.tclients.locate(cid, cid, locaseinsensitive); rockydm.tkeys.locate(khid, hid, locaseinsensitive); end else begin /数据库中没有记录,添加到数据库 rockydm.tkeys.append; rockydm.tkeys.fieldvalueskhid := hid; rockydm.tkeys.fieldvalueskpass := pass; rockydm.tkeys.post; showme

45、ssage(数据添加成功); end; end; ;end;4.4.3 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 表中查询硬件 id 等于%s 的客户信息。find_group_by_cid = select cgid from clients where cid=%d;它定义了从 clients 表中查询客户 id 等于%d 的客户在哪个分类当中。第 16 页 共 22 页当客户的硬件 id 及hid与定义的常量也就是定义的查询语句想匹配的时候就将其硬件 id 号添加到数据库,以便以后 rockey2 丢失的时候,查到其丢失的加

温馨提示

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

评论

0/150

提交评论