X
xxljishiben
Unregistered / Unconfirmed
GUEST, unregistred user!
昨日看了 陈前辈的关于流的应用的文章,于是今天着手学习流的应用http://delphibbs.2ccc.com/keylife/iblog_show.asp?xid=2762
首先是exe文件加密器的制作。
加密过程如下:
//制作head.exe作为头文件, 就是用来输入被加密文件密码的对话筐
//把head.exe 以及被加密的exe文件用流对象方式打开。
//通过copyfrom方法,把被加密文件与head文件流合并。
//在流的末尾加入 4 个字节,用来记录被加密文件的长度,以便读出。
~~~~~~~~~~~
以上是陈老师举例中提到的,由于为了描述方便,他没有讲关于密码的存储问题, 而是用了一个固定密码来简要说明。于是,我又给加上如下内容
~~~~~~~~~~~
//在流的末尾用Twriter对象的writestring方法写入密码
//在流的末尾再加入 4 个字节记录密码的长度
~~~~~~~~~~~~~~~~~~~
解密过程如下
//读出密码长度
//读出密码,判断记录的密码与当前输入密码是否一致
//如果密码正确,读出文件长度,
//然后读出文件并保存。
~~~~~~~~~~~~~~~~~~~
问题如下:我用 Twriter 对象的方法写入密码
mywriter:=Twriter.Create(target,1024)
//写入密码
mywriter.WriteListBegin;
mywriter.WriteString(password);
mywriter.WriteListEnd;
用 Treader 对象的 方法读出密码时出错。
m_pass:=treader.Create(source,1024) ;
m_pass.ReadListBegin;
result:=m_pass.ReadString;
~~~~~~~~~~~~~~~~ 这是相对严格按照树上介绍的Tfliter的方法进行的。
以下程序方法也行不通。
mywriter:=Twriter.Create(target,1024)
//写入密码
mywriter.WriteString(password);
用 Treader 对象的 方法读出密码时出错。
m_pass:=treader.Create(source,1024) ;
result:=m_pass.ReadString;
首先是exe文件加密器的制作。
加密过程如下:
//制作head.exe作为头文件, 就是用来输入被加密文件密码的对话筐
//把head.exe 以及被加密的exe文件用流对象方式打开。
//通过copyfrom方法,把被加密文件与head文件流合并。
//在流的末尾加入 4 个字节,用来记录被加密文件的长度,以便读出。
~~~~~~~~~~~
以上是陈老师举例中提到的,由于为了描述方便,他没有讲关于密码的存储问题, 而是用了一个固定密码来简要说明。于是,我又给加上如下内容
~~~~~~~~~~~
//在流的末尾用Twriter对象的writestring方法写入密码
//在流的末尾再加入 4 个字节记录密码的长度
~~~~~~~~~~~~~~~~~~~
解密过程如下
//读出密码长度
//读出密码,判断记录的密码与当前输入密码是否一致
//如果密码正确,读出文件长度,
//然后读出文件并保存。
~~~~~~~~~~~~~~~~~~~
问题如下:我用 Twriter 对象的方法写入密码
mywriter:=Twriter.Create(target,1024)
//写入密码
mywriter.WriteListBegin;
mywriter.WriteString(password);
mywriter.WriteListEnd;
用 Treader 对象的 方法读出密码时出错。
m_pass:=treader.Create(source,1024) ;
m_pass.ReadListBegin;
result:=m_pass.ReadString;
~~~~~~~~~~~~~~~~ 这是相对严格按照树上介绍的Tfliter的方法进行的。
以下程序方法也行不通。
mywriter:=Twriter.Create(target,1024)
//写入密码
mywriter.WriteString(password);
用 Treader 对象的 方法读出密码时出错。
m_pass:=treader.Create(source,1024) ;
result:=m_pass.ReadString;