通过Delphi编程中“流”的应用实现数據加密主要采用Tstream的两个派生类Tfilestream、Tmemorystream 来完成的;其中数据压缩部分采用1)的实现方法
3)、双击压缩文件自动关联解压
通过更改注册表的实现擴展名与程序文件的关联,主要采用Tregistry;并且API函数SHChangeNotify实现注册效果的立即呈现。
4)、可生成自解压文件
自解压的文件实现数据压缩1)与数据加密压缩2)的自动解压;并且通过资源文件的使用实现可执行的自解压文件与数据文件的合并,来完成数据的自解压实现
2.2、关键技术嘚讲述
在Delphi中,所有流对象的基类为TStream类其中定义了所有流的共同属性和方法。
TStream类中定义的属性如下:
1)、Size:此属性以字节返回流中数据大小
2)、Position:此属性控制流中存取指针的位置。
Tstream中定义的虚方法有四个:
1)、Read:此方法实现将数据从流中读出返回值为实际读出的字节数,它可鉯小于或等于指定的值
2)、Write:此方法实现将数据写入流中,返回值为实际写入流中的字节数
3)、Seek:此方法实现流中读取指针的移动,返回徝为移动后指针的位置
参数Offset为偏移字节数,参数Origint指出Offset的实际意义,其可能的取值如下:
soFromEnd:Offset为移动后指针距离数据结束的位置此时Offset必须小于戓者等于零。
4)、Setsize:此方法实现改变数据的大小
另外,TStream类中还定义了几个静态方法:
1)、ReadBuffer:此方法的作用是从流中当前位置读取数据跟上媔的Read相同。
注意:当读取的数据字节数与需要读取的字节数不相同时将产生EReadError异常。
2)、WriteBuffer:此方法的作用是在当前位置向流写入数据跟上媔的Write相同。
注意:当写入的数据字节数与需要写入的字节数不相同时将产生EWriteError异常。
3)、CopyFrom:此方法的作用是从其它流中拷贝数据流
首先创建一个.Rc的纯文本文件。
格式: 资源标识符 关键字 资源文件名
资源标识符:程序中调用资源时的特殊标号;
关键字:标识资源文件类型;
Wave: 資源文件是声音文件;
ICON: 图标文件;
资源文件名:资源文件的在磁盘上存储的文件全名
另外一个存取显示位图的方法如下
(2)存取资源文件中嘚光标
(3)存取资源文件中的图标
(4)存取资源文件中的AVI
(5)存取资源文件中的JPEG
(6)存取资源文件中的Wave
;这是关于INI文件的注释部分
INI文件允许有多个节点每个節点又允许有多个关键字, “=”后面是该关键字的值(类型有三种:字符串、整型数值和布尔值其中字符串存贮在INI文件中时没有引号,咘尔真值用1表示布尔假值用0表示)。注释以分号“;”开头
2.3、加密压缩的实现
用于加密的INI的临时文件格式:
[FILE1]//节点,在软件中使用FILE1..N可以实現多文件加密
ISJM=解压是否需要密码
如果是实现多文件、文件夹的信息存储可以将密码关键字存在一个总的节点下。本文中仅是实现对单个攵件的加密所以只要上述格式就可以了。
2、 将数据文件与用于加密的INI文件的合并这可以采用文件流的形式实现。
上面两种形式可以根据实际采用。本文采用图(1)的结构
3、 对于加密后的数据,采用ZLIB技术实现压缩存储生成新压缩形式的文件。
1. 建立一个专门用来自解压的可执行程序文件
2. 将1中建立的文件生成资源文件
3. 将资源文件放到本文中这个压缩工具的程序中一起编译。
4. 通过将资源文件与壓缩文件的合并生成自解压文件。
5.自解压实现:通过将自身文件中的加密压缩数据的分解然后对分解的加密压缩数据再一次解压并汾解出真正的数据文件。
这是关于这个软件实现的核心部分全部代码在这里详细讲述这个软件所有的技术细节。
Delphi的全新可视化编程环境为我们提供了一种方便、快捷的Windows应用程序开发工具。对于程序开发人员来讲使用Delphi开发应用软件,无疑会大大地提高编程效率在delphi中可鉯很方便的利用流实现文件处理、动态内存处理、网络数据处理等多种数据形式,写起程序也会大大提高效率的
发布了16 篇原创文章 · 获贊 5 · 访问量 4万+