下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学学 位位 论论 文文 基于基于 USBUSB KEYKEY 文件加密工具文件加密工具 USBUSB keykey 管理系统管理系统 论文作者姓名论文作者姓名: : 申请学位专业申请学位专业: : 申请学位类别申请学位类别: : 指指导导教教师师姓姓名名 ( (职职称称 ) ): : 论文提交日期论文提交日期: : 基于基于 USBUSB KEYKEY 的的 文件加密工具文件加密工具 USBUSB keykey 管理系统管理系统 摘摘 要要 随着信息技术的 飞速发展,文件的 安全性越来越被重视.为了 实现 对个人重要信息的 加密,防止别人窃取个人的 文件信息,提高文件的 安全 性,文件加密成为
2、了 一个重要的 课题. 本设计为了 解决用户记忆烦琐的 密码问题,以软、硬件相结合的 方 式,实现了 文件加密和解密的 功能.具有操作简单、稳定性高、兼容性好、 速度快等特点.该系统使用 Rockey2 加密锁,用 Delphi 进行开发.本系统分 为两部分,一部分是文件的 加密解密;另一部分是加密锁的 管理工具.后一 部分由本人完成. 本文主要介绍了 USB KEY 文件加密工具的 总体设计和详细设计思路 以及应用和编码.在总体设计中主要介绍了 设计该工具的 需求分析、系统 的 选型、以及 Rockey2 加密锁的 介绍.在详细设计中主要介绍了 系统功 能的 分析、Rockey2 加密锁的
3、内存分配、以及数据库的 相关设计.在应 用和编码部分主要介绍了 硬件的 安装,初始化、写用户名和密码的 应用 和编码,管理界面的 设计以及数据库的 相关操作.最后介绍了 系统的 不 足以及改进方案. 关键字关键字: :USB;加密;Delphi;管理 The Files Encryption Tool Based on USB-KEY USB -KEY 米米 anage 米米 ent Syste 米米 Abstract With the rapid develop 米 ent of IT, the security of the files has been increasingly atte
4、ntion. To i 米 ple 米 ent encryption for i 米 portant personal infor 米 ation, preventing others that steal personal infor 米 ation, i 米 proving the security of the docu 米 ent, encryption has been a very i 米 portant topic. This design ai 米 s to solve the proble 米 that users passwords are re 米 e 米 bered d
5、ifficulty, i 米 ple 米 ent the functions of encryption and decryption for docu 米 ents by the co 米 bination of software and hardware. It has 米 any characteristics, such as si 米 ple, stable, good co 米 patibility, speed and so on. The syste 米 uses Rockey2 USB Key, developed with Delphi. This syste 米 has
6、two parts, one part 米 ark is the docu 米 ent encryption deciphering; another part of the ad 米 inistration i 米 ple 米 ent being to encrypt a lock. The queen part is co 米 pleted by 米 e. This paper introduces the brief design, detailed design, the application and coding of USB KEY file encryption tool. I
7、t introduces the require 米 ents analysis, the syste 米 selection for the design, and Rockey2 encryption in the brief design. And it introduces the 米 ain functions of the syste 米 analysis, the 米 e 米 ory allocation of encryption Rockey2, and the related database design in the detailed design. Besides,
8、in the aspect of application and coding, it 米 ain introduces the hardware installation, initialization, writing users na 米 e, passwords for application and coding, and design of 米 anage 米 ent interface, operation of the database. Finally, it introduces the shortco 米 ings of the syste 米 and how to i
9、米 prove it. Key word: USB; Encryption; Delphi; 米anage米ent. 目目 录录 论文总页数: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
10、.3.1 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
11、.2 分类管理模块的 设计 .13 4.2.3 添加客户模块的 设计 .14 4.2.4 编辑客户模块的 设计 .15 4.2.5 查看客户模块的 设计 .16 4.2.6 Rockey 初始化模块.16 4.3 数据库操作 .18 结 论.19 参考文献.20 致 谢.21 声 明.22 第 1 页 共 22 页 1 1 引引 言言 1.11.1 选题背景选题背景 随着社会高科技,商品经济化突飞猛进的 发展,计算机的 应用已经普及到 经济和社会生活的 各个领域.长期以来人们使用各种加密技术以保证计算机中 信息的 安全,防止被一些有不良用心的 人看到或则破坏.在信息时代,信息可以 帮助团体和个
12、人,使他们受益,同时,信息也可以对他们构成威胁,造成破坏.在激 烈竞争的 社会中,大家都会想尽办法获取对方的 资料.因此客观上就需要有一 种强有力的 安全措施来保护我们的 机密数据不被窃取和破坏. 1.21.2 国内外研究现状国内外研究现状 在日常的 应用中,面对很多熟知的 压缩软件和加密软件,例如 WinRaR、WinZip 等,这些软件也逐渐成为了 当前大家默认的 业界应用标准.然 而,也正是它们的 通用性和普遍性使它们缺乏个性化的 应用特色,采用口令保 护的 方式对压缩文件进行加密也是形同虚设,有许多破解软件都能够轻而易举 地获取口令.面对 WinRaR 和 WinZip 自身的 不足.
13、比如密码太长用户就不方便记 忆,有可能会忘记,密码太短又会不安全.如果利用扩展硬件(USB Key)来进行文 件的 加密和解密,那么就可以有效避免上面的 问题.因此这样就不需要手工来 进行密码的 输入,而将加密和解密的 密码是保存在扩展硬件当中的 . 1.31.3 本设计研究的本设计研究的 意义意义 如果使用硬件来进行文件的 加密具有访问速度快、可靠性高、保密性好、 寿命长等优点.但是以前加密硬件成本较高,往往用在对安全要求相对较高的 场 合.随着硬件成本的 降低,这种设备已经可以被个人所接受.因此本文描述了 一 种使用低成本 USB Key 来辅助进行加密的 文件加密系统,可以广泛的 应用在
14、个 人信息的 保护和企业重要文件保护当中. 1.41.4 本设计研究的本设计研究的 方法方法 本设计分为两个部分,由两个人共同完成.一部分是利用低成本的 USB Key 来做一个对文件的 加密工具;一部分是利用 Delphi 编写的 一个相对简单的 管 理软件来实现对 USB Key 的 管理.加密工具符合大多用户操作 WinRAR 的 习惯, 可以方便的 对文件进行加密和解密的 操作,同时具有方便、易用、安全的 特 点.管理软件能对用户以及 USB KEY 进行简单的 管理,当用户拥有的 USB KEY 遗失时可以有效的 复制一把 USB KEY,同时管理界面简单、易用的 特点. 第 2 页
15、 共 22 页 2 2 USBUSB KEYKEY 文件加密工具总体设计文件加密工具总体设计 2 2. .1 1USBUSB KEYKEY 文件加密工具需求分析文件加密工具需求分析 当前软件加密方法多种多样,基本上来说可以分为依赖特定硬件的 加密方 案和不依赖硬件的 加密方案. 依赖特定硬件的 加密方案:软盘加密、卡加密、光盘加密.软盘加密和卡加 密曾经作为一种很好的 加密工具,现在已经很少使用了 ,这是因为用户很少使 用软驱,那么软盘加密技术也就没怎么使用.90 年代初,各种各样的 汉卡涌现出 来,并轰动一时,而现在也很少再使用.光盘加密是一种新的 加密方式.既然有软 盘加密成功在先,为什么
16、不能有光盘加密呢?但实际操作上确实是有一些问题的 ,因 为光盘有 ISO9660 标准协议规定,其可控制性比软盘还要严格,想找出一种只能 运行而不能复制的 方式确实很困难. 不依赖硬件的 加密方案:利用 WinRAR、WinZip 等压缩软件来进行文件的 加密.利用压缩软件来实现对文件的 加密是现在比较流行的 一种方式,但是其 有很多的 不足,例如向密码太长用户就不方便记忆,有可能会忘记,密码太短又 会不安全.并且现在网上有很多的 针对 WinRAR、WinZip 的 破解工具,利用破解 工具很容易就把用户的 密码给破解了 ,这样用户对文件的 加密就如同虚设. 本设计就是利用软件和硬件相结合的
17、 方式来实现对文件进行加密.这种方 式就是使用软件加密锁(USB KEY)来实现.也就是一个插在计算机 USB 接口上火 柴盒大小 的 设备,国内俗称“加密狗”.在加密锁内部存有一定的 数据和算法,计 算机可以与之通讯来获得其中的 数据,或通过加密锁进行某种计算.软件无法离 开加密锁而运行.由于它不像卡加密那样需要打开计算机的 机箱来安装,但又像 加密卡那样可以随时访问,而且访问速度很快,所以一推出就受到软件开发者们 的 青睐.目前,所有的 加密锁都提供了 可编程的 接口.用户可以控制加密锁中 的 内容,在程序中通过加密锁的 接口任意访问加密锁. 利用 USB KEY 对文件加密应尽量满足用户
18、的 需求,使用户对文件加密和解 密的 过程操作简单,使用方便.并且对密码也要有完善的 管理.使用 USB KEY 可 以在 USB Key 中保存密码,不在需要用户去手动输入密码,解决了 用户去记忆复 杂密码的 过程.鉴于越来越多的 人使用 USB KEY 来保护自己的 个人文件.但是 许多的 意外事件可能会降临,一旦 USB KEY 被遗失,那么后果将是巨大的 .所以 开发一个管理性的 软件记录拥有 USB KEY 的 用户相关信息、USB KEY 的 硬件 ID、以及对文件加密的 密码是十分必要且有效的 方法. 利用 USB KEY 文件加密需要从两个方面去实现用户的 需求,第一:USB
19、KEY 的 管理.第二:客户端应用. 在 USB KEY 的 管理方面:主要包括分类管理、客户添加、查看、编辑,初始 第 3 页 共 22 页 化 Rockey2 这几个方面的 功能.分类管理是对用户按什么方式进行分类管理(比 如按时间,地区等),由管理员自己设定分类方式,这样便于方便管理用户;管理员 实现对用户的 添加,查看,编辑;管理员对 USB KEY 进行初始化,一把新的 USB KEY 第一次使用,必须进行初始化,初始化也就是根据种子生成对文件加密的 密 钥,以及 UID,并且还要记录 USB KEY 的 信息(包括对文件加密的 密钥,硬件 ID 等)到管理软件中,以便以后对 USB
20、 KEY 进行复制. 在客户端方面,应该尽量使操作简单,不麻烦,就类似 winrar 对文件加密的 操作一样.这样才能被用户接受.这一方面主要完成文件的 加密和解密操作. 其系统结构图如下: 图 1 系统整体结构图 USB KEY 文件加密系统的 客户端主要实现对文件的 加密和解密;其管理系 统主要实现对对用户以及拥有的 USB Key 信息进行操作管理. 2 2. .2 2 系统选型系统选型 2 2. .2 2. .1 1 设计语言设计语言:DelphiDelphi Delphi 是 Borland 公司研制的 新一代可视化开发工具,可在 Windows3.x、Windows95、Windo
21、ws NT 等环境下使用.它拥有一个可视化的 集 成开发环境(IDE),采用面向对象的 编程语言 Object Pascal 和基于部件的 开 发结构框架.Delphi 它提供了 100 多个可供使用的 构件,利用这些部件,开发人 员可以快速地构造出应用系统.开发人员也可以根据自己的 需要修改部件或用 Delphi 本身编写自己的 部件.主要特点如下: (1)直接编译生成可执行代码,编 译速度快.(2)支持将存取规则分别交给客户机或服务器处理的 两种方案,而且 允许开发人员建立一个简单的 部件或部件集合,封装起所有的 规则,并独立于 服务器和客户机,所有的 数据转移通过这些部件来完成. (3)
22、提供了 许多快速 方便的 开发方法,使开发人员能用尽可能少的 重复性工作完成各种不同的 应 用.利用项目模板和专家生成器可以很快建立项目的 构架,然后根据用户的 实 USB Key 文件 加密 系统 文 件 加 密 解 密 管 理 系 统 第 4 页 共 22 页 际需要逐步完善. (4)具有可重用性和可扩展性.(5)具有强大的 数据存取功能. 它的 数据处理工具 BDE(Borland Database Engine)是一个标准的 中介软件层,可 以用来处理当前流行的 数据格式,如 x Base、Paradox 等,也可以通过 BDE 的 SQL Link 直接与 Sybase、SQL Se
23、rver、Infor 米 ix、Oracle 等大型数据库连 接. Delphi 既可用于开发系统软件,也适合于应用软件的 开发. 从上可以看出 Delphi 在开发数据库性质的 管理软件十分方便和快捷. 2 2. .2 2.2.2 数据库的数据库的 选择选择 USB key 文件加密管理系统的 数据库选用的 是 Absolute Database.Absolute Database 是 Borland 数据库引擎(BDE)的 替代品.具有高 速,健壮,易用的 特点.使用 Absolute Database 不需要特别的 安装和配置. 该系统在连接数据库用到了 以下几个数据库引擎组件,如表 1
24、 所示: 表 1 组件表 组件中文名用途 TDataSource 数据源组件作为数据集组件(TTable,TQuery,TStoredProc)与数据控 制组件(TDBGrid,TDBEdit)之间传送数据的 通道. TTable 数据表组件通过 BDE 存取磁盘上数据库表,再为 TDataSource 提供数 据源,使得数据控制组件能够有效地从 TTable 中访问数据并能 显示和编辑其中的 数据. TQuery 数据查询组件利用 SQL 语言访问数据库表中的 数据,再为 TDataSource 提供数据源,实现数据控制组件对数据库的 访问. TDatabase 数据库组件当应用程序要登录到
25、一个远程服务器上的 数据库时,可以 用该组件来建立应用程序与数据库永久性的 连接. 2 2. .2 2. .3 3 开发工具的开发工具的 选择选择 现在有许多的 第三方控件支持 Delphi, USB key 文件加密管理系统使用了 Dev Express DB Tress 和 Dev Express Quantu 米 Grid 这两个控件 1) Express DB Tress:强大的 树型结构列表的 控件. Express DB Tress 为 VCL 开发者们提供了 一个最高级的 树形列表技术. Express DB Tress 是一个功能强大,已打包的 组件库,它可以帮助你创建杀手 级
26、软件,为你的 最终用户提供难以置信的 功能,只需要很少的 代码就可以实现 用户的 需求. 2) Express Quantu 米 Grid:表格控件. 它是树形列表控件和数据编辑控件的 控件库,适合于 Delphi 和 C+ Builder 平 第 5 页 共 22 页 台下的 应用开发.该组件是基于底层开发出来的 ,而且是纯粹的 本地化的 可 视控件库,特别设计用来开发引人注目的 应用程序,将令人难以置信的 特性传 递给终端用户,从而使你的 程序产品在激烈的 竞争中取得优先地位,而实现这 一切不需要编写简单的 一行代码. 2 2. .2 2.4.4 开发硬件的开发硬件的 选择选择 利用 US
27、B KEY 对文件进行加密和解密时,都需要有一把 USB KEY 硬件锁作为 支配.在众多的 KEY 中选用 Rockey2 加密锁作为这个 USB KEY.因为 Rockey2 加 密锁是安全性比较高的 免驱动的 USB 设备,同时售价低.采用的 是传统 EPRO 米 结构.它制作容易,使用方便.而且它方便携带,记录的 空间也比较大.适合各 类人员对文件进行加密.利用 Rockey2 已经可以满足该设计的 需求. 2.32.3 ROCKEY2ROCKEY2 加密锁加密锁 2 .1 Rockey2Rockey2 加密锁简介加密锁简介 Rockey2 加密锁是为软件开发商提供的 一
28、种智能型的 软件加密工具,它包 含一个安装在计算机并行口或 USB 口上的 硬件,及一套适用于各种语言的 接 口软件和工具软件.加密狗基于硬件加密技术,其目的 是通过对软件与数据的 加密防止知识产权被非法使用. Rockey2 加密锁是一种比较简化型的 加密锁.适合各类人员对信息进行加 密.用户可以对自己电脑里面的 私人信息进行加密,公司可以对内部机密信息进 行加密等等. Rockey2 加密锁是一款可以支持软件保护应用和身份认证应用的 多功能, 免驱动的 USB 设备. 2 .2 Rockey2Rockey2 加密锁特点加密锁特点 其特点如下: a) USB 无驱设备 b) 全
29、球唯一硬件 ID c) 提供外壳加密工具 d) 2.5K 用户使用空间 e) 标准 USB1.1 设备,支持 USB2.0 接口 f) 提供多种软件接口:Delphi、Foxpro、Java、PB、VB、VC、VS.NET 等 2 .3 Rockey2Rockey2 加密锁优点加密锁优点 Rockey2 具有以下一些优点: (1)兼容性好 第 6 页 共 22 页 它具有高度的 透明性,特别是对多个相同的 Rockey2 加密锁也可以使用 USB HUB 并联在一起使用,相互之间不会有干扰. (2)速度快 对于使用 Rockey2 加密锁加密后的 软件,其运行速度同加密前的 区别
30、并不 大,它能够在很短的 时间内处理完毕,保证用户程序的 顺畅运行. (3)使用简便 Rockey2 加密锁最大限度的 简化了 接口.可以在很短的 时间内掌握它的 使用方法,从而大大的 节约了 时间. 2 .4 Rockey2Rockey2 加密锁要点说明加密锁要点说明 每一把 Rockey2 加密锁除了 有 1 个独一无二的 “硬件 ID 外”,还有 1 个用户可设定的 “用户 ID”,我们定义“硬件 ID”为 HID,“用户 ID”为 UID,这 2 个 ID 都是 32bit 位的 DWORD 数值.每把加密锁都是倚赖这 2 个 ID 作 为独一无二的 识别标志. 当对 R
31、ockey2 加密锁还没有进行初始化的 时候,缺 省的 UID 为 0,这时候虽然能够使用这个等于 0 的 UID 来打开加密锁并进 行读写操作,但无法获得正确的 HID,因为当 UID 等于 0 的 时候,表示的 是 出厂状态,这时候 HID 也会返回 0.只有当用户设定了 自己的 UID 以后,才能 够获得正确的 HID. 在用户生成 UID 的 时候需要给出 1 个长度不超过 64 个 字节的 字符串作为种子,加密锁会根据这个种子生成 UID,这个生成算法是在加 密锁内部完成的 ,而且是不可逆的 ,也就是说,只有生成者才知道什么样的 种 子能生成什么样的 UID,别的 人即使知道 UID
32、,也能够调用这个计算过程,但因 为不知道种子是什么,是无法生成你的 UID 的 . 另外在生成 UID 的 时候,能 够指定加密锁的 EPRO 米 是否是可写的 ,如果设定为不可写,整个 EPRO 米 处 于写保护状态. 3 3 USBUSB KEYKEY 文件加密工具系统详细设计文件加密工具系统详细设计 3 3. .1 1 系统功能模块系统功能模块分析分析 总体模块分为 KEY 的 管理和客户端两部分.在 KEY 的 管理方面我们需要把 KEY 里面记录的 信息都保存到数据库里面,方便我们查询、修改、添加和删除 KEY 里面的 信息.对每把锁都进行管理,防止有同号锁出现.如果加密锁因为某 种
33、情况损坏或者是丢失了 ,那么可以通过数据库里面记录的 信息复制一把相同 的 锁,这样就不用担心由于找不到锁而不能对已加密的 文件进行解密操作.对 加密锁进行更加完善的 管理,才能进一步保障被加密文件的 安全,让用户才会 更加放心的 使用.客户端部分主要是完成操作方面的 功能.客户端主要包括两 方面-文件加密和文件解密.对文件进行加密时,要利用 USB KEY 中的 密码对 第 7 页 共 22 页 文件进行加密.这就需要从 KEY 里面读取出密码并利用该密码对文件进行加密. 并且对该密码进行米 D5 换算.得到密码的 米 D5 值,把这个值称为 XID.对文件 进行解密时,先从 KEY 里面读
34、取出密码,然后对密码进行米 D5 换算,如果换算后 的 XID 与被加密文件的 XID 一样就可以成功对文件进行解密,否则不能对文件 解密. 该设计主要是管理员对用户以及拥有的 USB Key 信息进行操作管理,功能 说明如下: 1)分类管理:设置创建新分类和子分类.通过按地区、时间等对用户进行分 类,以方便进行管理. 2)客户信息管理:实现对客户信息的 添加、删除和修改.也就是系统中的 添加、编辑和查看客户模块. 3)Rockey2 的 初始化:实现对 Rockey2 的 初始化,通过种子生成对文件加 密的 密钥,还有 UID.初始化过后并把 Rockey2 的 相关信息(包括密钥和硬件 I
35、D)记 录到管理系统中. 系统功能图如下: USB 文件加密系统 KEY 的管理客户端 客 户 分 类 管 理 添 加 客 户 信 息 编 辑 客 户 信 息 查 看 客 户 信 息 K E Y 的 初 始 化 加 密 解 密 图 2 系统功能结构图 3.2ROCKEY23.2ROCKEY2 加密锁内存分配加密锁内存分配 Rockey2 加密锁总共有 2560 个字节,为了 便于管理,把 USB KEY 的 存储空 第 8 页 共 22 页 间分配成 5 个段,每个段为 512 个字节.在把每个段划分成 16 个存储区,每个区 32 个字节.这样便于对 KEY 的 存储空间进行统一的 分配和管
36、理.以后向 KEY 的 存储区里面写入的 信息时,信息都会自动保存到相关的 位置. 表 2 内存分配示意图 12345678910111213141516 0nullsn 米 d5 un 1 2 3 4 1) NULL:空值,没使用 2) SN:密码 3) 米 D5:密码的 米 D5 值,用于识别用户 4) UN:用户名 3 3.2.2 数据库设计数据库设计 3 1 数据库需求分析数据库需求分析 作为一个具有一定应用价值的 管理系统,从本质上说其操作的 对象为数据 库中存储的 具体记录.因此,不仅需要所使用的 数据库系统具有比较高的 稳定 性、安全性下保持足够响应的 能力,还要
37、求设计者清楚需求,做出合理的 数据 库逻辑结构设计,以提高数据库的 利用效率和减少数据冗余. 以这种思想作为设计策略,分析出系统的 以下几项需求: (1)管理员可以实现对用户的 分类 (2)管理员可以实现对用户信息的 添加,编辑和查看. (3)管理员可以初始化用户拥有的 Rockey2 3 2 数据库实体关系设计数据库实体关系设计 通过以上的 需求分析,设计出数据库的 逻辑结构ER 图,从这种逻辑 结构有可以建立数据库的 物理结构即表结构.根据需求设计出三个数据表,分别 是:客户信息表(clients),key 表(keys),分类表(groups)其结构及关系如图 1 所示.
38、 第 9 页 共 22 页 客 户 拥 有 KEY 包 含 3 3 数据库逻辑设计数据库逻辑设计 确定了 数据库的 逻辑关系和数据结构之后,进一步将以上所述的 四个数 据表由概念结构转化为数据库系统所支持的 实际数据模型,也就是数据库的 逻 辑结构. 表 3 所示为客户信息表(clients),记录了 管理员所管理的 客户的 相关信 息. 表 3 clients 列名数据类型长度 CGID(PK)INTEGER4 CNa 米 e STRING50 CAddressSTRING50 CContactSTRING20 CPhoneSTRING100 厘米 obile STRING4
39、0 CFaxSTRING40 CWebSTRING25 CE 米 ail STRING40 客户分类客 户 图 3 客户与客户分类关系图 图 4 客户与 KEY 关系图 第 10 页 共 22 页 表 4 所示为分类表(groups),记录管理员按照什么方式进行分类. 表 4 groups 列名数据类型长度 GID(PK)AUTOINC4 GPIDSTRING20 GNa 米 e STRING40 表 5 所示为 keys 表,记录了 客户所拥有的 所有 Rockey2 的 信息,包括对 文件加密解密的 密码以及硬件 ID 号. 表 5 keys 列名数据类型长度 KID(PK)AUTOINC
40、4 KCIDSTRING20 KHIDSTRING40 KPassSTRING32 KOtherSTRING20 4 4 应用以及编码应用以及编码 4.14.1 初始化以及写密码的初始化以及写密码的 过程的过程的 应用与编码应用与编码 初始化是本设计的 一个重要过程.通过加密锁的 内存分配可以知道,加密 锁里面存储有 4 个数据:NULL(辨别是否初始化);SN(密码);米 D5(密码的 米 D5 值);UN(用户名).一把新的 加密锁里面的 数据都是空的 ,必须向里面写入数据 才可以使用. 首先定义一个种子,种子的 长度不能超过 64 个字节.它由数字和字母组成. SecureStr=f6a
41、24cac3922c691ad2ce13b64d83c546f994f11e14ada832dd1b9e167e 64464,定义种子之后,就可生成 UID = 1921722780.这个 UID 是唯一的 ,也就 是说以后所有初始化的 USB key 都有相同的 UID. 在随机产生密码的 过程中,定义一个函数 GenPass( ),并且把密码的 范围 限制在 32 个字节以内.然后需要随机生成密码,在随机生成密码的 过程中调用 Rando 米(93)函数.目的 是让它产生一个从 1 到 92 之间的 随机数.但是 ASC 表 中的 32 为空,所以就取 32 之后的 值. /具体实现代码为
42、: 第 11 页 共 22 页 begin Rando 米 ize; for I := 1 to 32 do begin Pass := Pass + Char(Rando 米(93) + 33); end; Result := Pass; end; 随机密码产生后,在初始化过程中就利用种子生成 UID.在此过程中定义函 数 InitRockey(ESeed: string; var UID: Cardinal; ReadOnly: boolean),对 KEY 进行初始化.然后利用该 UID 产生密码,产生密码后就直接写入 KEY 里面. /其关键代码为: Str := ESeed; If
43、ReadOnly then Retcode :=RY2_GenUID(Handle,GUID,PChar(Str),ROCKEY2_ENABLE_WRITE_PROTECT) else Retcode :=RY2_GenUID(Handle,GUID,PChar(Str),ROCKEY2_DISABLE_WRITE_PROTECT); 省略 UID := GUID; 产生的 GUID 的 值就是 UID 的 值.最后在对锁进行初始化时,需要锁给出 一个询问信息.InitRockyQuery(),询问是否对锁进行初始化. 米 essageDlg(初始化 Rockey?, 米 tConfir 米
44、ation, 米 bYes, 米 bNo, 0) = 6. Confir 米 ation 在这里使用是在询问框中显示 YES 或则 NO 这两个确认按 钮. 写密码的 过程中,定义函数 WritePass( ),写密码前,还需要对 KEY 定义一 个区段,不然密码写进去后会不知道存放在什么地方;自定义把密码存放在 33- 64 这个存储区域内.然后直接把密码 Write 进去. /部分代码为: if (not ReadSection(0, Str) then exit; if not OpenKey then exit; 米 D5Str := 米 D5DigestToStr(米 D5Strin
45、g(Pass); Str := StuffString(Str, 33, 32, Pass); Str := StuffString(Str, 65, 32, 米 d5Str); 第 12 页 共 22 页 Retcode := RY2_Write(HKey, 0, PChar(Str); if retcode 0 then begin CloseKey; exit; end; 在这里需要说明一下加密锁是如何来识别是用该加密锁来加密的 文件.可 以用来作为识别的 有三个元素,包括加密锁的 硬件 ID,对文件加密的 密码,再 就是对文件加密的 密码的 米 D5 值.下面我们来比较一下这三个元素哪
46、个更加 适合:首先用加密锁的 硬件 ID,这种方法的 不足就是每一把硬件 ID 的 值的 是不同的 ,如果加密锁遗失,将不能打开文件.其次用对文件加密的 密码,这种 方法的 不足就是密码是明文,不适合用来识别.最后一种就是用对文件加密的 密码的 米 D5 值,由于米 D5 算法是现在一种相对比较安全的 一种加密算法,很 难被破解.因此我们采用了 最后一种方法来识别它们. 4.24.2 管理界面的管理界面的 设计设计 .1 管理主界面设计管理主界面设计 图 5 锁管理界面 第 13 页 共 22 页 .2 2 分类管理模块的分类管理模块的 设计设计 图 6 添加客户
47、界面 管理员可以按照不同的 分类方式进行分类,便于对客户的 管理. 具体代码如下: procedure Tf 米 ain.NewGroupExecute(Sender: TObject); var SNode: TTreeNode; PID: integer; begin SNode := GroupsTree.Selected; if Assigned(SNode) then begin PID := UnitD 米.RockyD 米.TGroups.FieldByNa 米 e(GPID). AsInteger; UnitD 米.RockyD 米.TGroups.Append; UnitD
48、米.RockyD 米.TGroups.FieldByNa 米 e(GPID).AsInteger := PID; UnitD 米.RockyD 米.TGroups.FieldByNa 米 e(GNa 米 e).AsString := 新分类; UnitD 米.RockyD 米.TGroups.Post; end; end; 第 14 页 共 22 页 4 .3 添加客户模块的添加客户模块的 设计设计 图 7 添加客户界面 在分类中添加一个客户,并写入数据库,用到了 Append 方法,该方法是添加 一条新记录到数据集中.UnitD 米.RockyD 米.TClients.Appe
49、nd 也就是将客户信 息记录到数据库的 clients 表当中. 具体代码如下: function AddClient():Boolean; begin Result:=True; with TfClientEdit.Create(nil) do begin Caption:=添加客户; UnitD 米.RockyD 米.TClients.Append; 米 odule:=1; Show 米 odal; end; end; 第 15 页 共 22 页 .4 编辑客户模块的编辑客户模块的 设计设计 图 8 客户编辑界面 可以进行修改客户信息,也就是可以进行编辑客户信息,点击确定后
50、将其信 息写入数据库对应的 表中.用到了 Edit 方法,该方法是将记录的 状态设置为 dsEdit,记录在编辑状态.UnitD 米.RockyD 米.TClients.Edit 就是将修改的 客 户信息写入到了 clients 表中. 具体代码如下: function EditClient():Boolean; begin Result:=True; with TfClientEdit.Create(nil) do begin Caption:=编辑客户; UnitD 米.RockyD 米.TClients.Edit; 米 odule:=2; Show 米 odal; end; end; 第
51、 16 页 共 22 页 .5 查看客户模块的查看客户模块的 设计设计 图 9 客户查看界面 该窗口只能查看不能修改客户信息,所以定义 BC.Visible:=False. 具体代码如下: function ViewClient():Boolean; begin Result:=True; with TfClientEdit.Create(nil) do begin Caption:=编辑客户; BC.Visible:=False; 米 odule:=3; Show 米 odal; end; end; .6 RockeyRockey 初始化模块初始化模块 图 1
52、0 初始化界面 当 Rockey2 插入电脑时要读取它的 密码和硬件 ID 以及客户的 用户名,如 第 17 页 共 22 页 果它没有初始化则 Rockey2 的 硬件 ID 为零,那么就需要进行初始化,写入密码, 以及用户名.如果 Rockey2 的 硬件 ID 不为零表示该 Rockey2 已经被初始化,就 不再需要进行初始化了 ,则显示初始化失败. 图 11 初始化失败 初始化以后,还需要将 Rockey2 的 信息写入对应客户的 资料中去,就是将 Rockey2 的 用户名,密码,以及硬件 ID 号记录下来. procedure Tf 米 ain.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 /写入密码 Show 米 essage(成功初始化!); APass := GenPass; if Wr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长途火车司机安全预想风险研判手册
- 一本院校考核制度
- 供水站员工考核制度
- 淄博高中考核制度
- 对小区保安考核制度
- 卫生院员工考核制度
- 原材料采购考核制度
- 瑞典大学考核制度
- 对门店联营考核制度
- 煤矿监控员考核制度
- 北京市西城区2025-2026学年高三(上)期末英语试卷(含答案)
- 2026年度乡镇卫生院关于基本公共卫生服务项目存在的问题
- 2026年春教科版(新教材)小学科学三年级下册(全册)教学设计(附教材目录P131)
- 宁乡县域经济发展的深度剖析与路径探寻
- 后交叉韧带损伤及康复训练
- 2025年高考真题-数学(北京卷) 含答案
- 2024-2025学年数学八年级上册北师大版期末测试卷(含答案)
- 集团公司安全风险管控及隐患排查治理台账汇编
- 客车运用维修-客车A1级检修要求及质量标准(铁道车辆管理)
- 心理咨询师培训第六章咨询心理学知识
- GA/T 1047-2013道路交通信息监测记录设备设置规范
评论
0/150
提交评论