【DELPHI设计栏目提醒】:网学会员--在 DELPHI设计编辑为广大网友搜集整理了:基于USB KEY文件加密工具Delphi绩等信息,祝愿广大网友取得需要的信息,参考学习。
随着信息技术的飞速发展,文件的安全性越来越被重视。为了实现对个人重要信息的加密,防止别人窃取个人的文件信息,提高文件的安全性,文件加密成为了一个重要的课题。
本设计为了解决用户记忆烦琐的密码问题,以软、硬件相结合的方式,实现了文件加密和解密的功能。具有操作简单、稳定性高、兼容性好、速度快等特点。该系统使用Rockey2加密锁,用Delphi进行开发。本系统分为两部分,一部分是文件的加密解密;另一部分是加密锁的管理工具。后一部分由本人完成。
本文主要介绍了USB KEY文件加密工具的总体设计和详细设计思路以及应用和编码。在总体设计中主要介绍了设计该工具的需求分析、系统的选型、以及Rockey2加密锁的介绍。在详细设计中主要介绍了系统功能的分析、Rockey2加密锁的内存分配、以及数据库的相关设计。在应用和编码部分主要介绍了硬件的安装,初始化、写用户名和密码的应用和编码,管理界面的设计以及数据库的相关操作。最后介绍了系统的不足以及改进方案。
1.1选题背景
随着社会高科技,商品经济化突飞猛进的发展,计算机的应用已经普及到经济和社会生活的各个领域。长期以来人们使用各种加密技术以保证计算机中信息的安全,防止被一些有不良用心的人看到或则破坏。在信息时代,信息可以帮助团体和个人,使他们受益,同时〖本文来自:骆驼论文网 www.myeducs.cn 〗,信息也可以对他们构成威胁,造成破坏。在激烈竞争的社会中,大家都会想尽办法获取对方的资料。因此客观上就需要有一种强有力的安全措施来保护我们的机密数据不被窃取和破坏。
1.2国内外研究现状
在日常的应用中,面对很多熟知的压缩软件和加密软件,例如WinRaR、WinZip等,这些软件也逐渐成为了当前大家默认的业界应用标准。然而,也正是它们的通用性和普遍性使它们缺乏个性化的应用特色,采用口令保护的方式对压缩文件进行加密也是形同虚设,有许多破解软件都能够轻而易举地获取口令。面对WinRaR和WinZip自身的不足。比如密码太长用户就不方便记忆,有可能会忘记,密码太短又会不安全。如果利用扩展硬件(USB Key)来进行文件的加密和解密,那么就可以有效避免上面的问题。因此这样就不需要手工来进行密码的输入,而将加密和解密的密码是保存在扩展硬件当中的。
1.3本设计研究的意义
如果使用硬件来进行文件的加密具有访问速度快、可靠性高、保密性好、寿命长等优点。但是以前加密硬件成本较高,往往用在对安全要求相对较高的场合。随着硬件成本的降低,这种设备已经可以被个人所接受。因此本文描述了一种使用低成本USB Key来辅助进行加密的文件加密系统,可以广泛的应用在个人信息的保护和企业重要文件保护当中。
1.4本设计研究的方法
本设计分为两个部分,由两个人共同完成。一部分是利用低成本的USB Key来做一个对文件的加密工具;一部分是利用Delphi编写的一个相对简单的管理软件来实现对USB Key的管理。加密工具符合大多用户操作WinRAR的习惯,可以方便的对文件进行加密和解密的操作,同时具有方便、易用、安全的特点。管理软件能对用户以及USB KEY进行简单的管理,当用户拥有的USB KEY遗失时可以有效的复制一把USB KEY,同时管理界面简单、易用的特点。
么样的 UID,别的人即使知道 UID,也能够调用这个计算过程,但因为不知道种子是什么,是无法生成你的 UID 的。 另外在生成 UID 的时候,能够指定加密锁的 EPROM 是否是可写的,如果设定为不可写,整个 EPROM 处于写保护状态。
3 USB KEY文件加密工具系统详细设计
3.1 系统功能模块分析
总体模块分为KEY的管理和客户端两部分。在KEY的管理方面我们需要把KEY里面记录的信息都保存到数据库里面,方便我们查询、修改、添加和删除KEY里面的信息。对每把锁都进行管理,防止有同号锁出现。如果加密锁因为某种情况损坏或者是丢失了,那么可以通过数据库里面记录的信息复制一把相同的锁,这样就不用担心由于找不到锁而不能对已加密的文件进行解密操作。对加密锁进行更加完善的管理,才能进一步保障被加密文件的安全,让用户才会更加放心的使用。客户端部分主要是完成操作方面的功能。客户端主要包括两方面---文件加密和文件解密。对文件进行加密时,要利用USB KEY中的密码对文件进行加密。这就需要从KEY里面读取出密码并利用该密码对文件进行加密。并且对该密码进 else Retcode :=RY2_GenUID(Handle,GUID,PChar(Str),ROCKEY2_DISABLE_WRITE_PROTECT);
………………省略…………………
UID := GUID;
产生的GUID的值就是UID的值。最后在对锁进行初始化时,需要锁给出一个询问信息。InitRockyQuery(),询问是否对锁进行初始化。
MessageDlg(''初始化 Rockey?'', mtConfirmation, [mbYes, mbNo], 0) = 6。
Confirmation在这里使用是在〖本文来自:骆驼论文网 www.myeducs.cn 〗询问框中显示YES或则NO这两个确认按钮。
写密码的过程中,定义函数WritePass( ),写密码前,还需要对KEY定义一个区段,不然密码写进去后会不知道存放在什么地方;自定义把密码存放在33-64这个存储区域内。然后直接把密码Write进去。
//部分代码为:
if (not ReadSection(0, Str)) then exit;
if not OpenKey then exit;
MD5Str := MD5DigestToStr(MD5String(Pass));
Str := StuffString(Str, 33, 32, Pass);
Str := StuffString(Str, 65, 32, Md5Str);
上一篇:基于局域网的文件传输系统Delphi+Socket