能提供加密解蜜的例子吗? 你想要什么级别的?什么用途?我有个非常简单的对filestream write重载。写文件时可‘加加密’你要吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用这个文件流类独写文件就行。文件内容是乱的。可以试着改加密字符。unit Encrypt;interface uses classes;type TEncryptStream = class (TFileStream) private FKey: Char; public constructor Create(const FileName: string; Mode: Word); function Read(var Buffer; Count: Longint): Longint; override; function Write(const Buffer; Count: Longint): Longint; override; property Key: Char read FKey write FKey default 'a'; end;implementation{ TEncryptStream }constructor TEncryptStream.Create(const FileName: string; Mode: Word);begin inherited Create (FileName, Mode); FKey := 'a';end;function TEncryptStream.Read(var Buffer; Count: Integer): Longint;var pBuf, pEnc: PChar; I, CountRead, EncVal: Integer;begin GetMem (pEnc, Count); try CountRead := inherited Read (pEnc^, Count); pBuf := PChar (@Buffer); for I := 0 to CountRead - 1 do begin EncVal := ( Ord (pEnc[I]) - Ord(Key) ) mod 256; pBuf [I] := Chr (EncVal); end; finally FreeMem (pEnc, Count); end; Result := CountRead;end;function TEncryptStream.Write(const Buffer; Count: Integer): Longint;var pBuf, pEnc: PChar; I, EncVal: Integer;begin GetMem (pEnc, Count); try pBuf := PChar (@Buffer); for I := 0 to Count - 1 do begin EncVal := ( Ord (pBuf[I]) + Ord(Key) ) mod 256; pEnc [I] := Chr (EncVal); end; Result := inherited Write (pEnc^, Count); finally FreeMem (pEnc, Count); end;end;end. 要是明儿试了,成了的话,一定给Laza奖励的。Thank you! To Laza:给个你的加解密类用法的例程如何?谢谢! To laza:(1)请你说明一下各个参数的意义 (2)如何给这些输入参数赋值以及如何设置输出参数的缓冲区大小等?????? 问题多多,请你不要心烦呀!如果你解决了这些问题,我一定给你加分的(>10) 我现写了一个,时间比较仓促。你应该多看看帮助。Implementation uses Encrypt;//引用加密流单元,可使用加密流类。...//Write Block; 写文件。文件名应存在,创建文件看帮助,TFileStream 帮助var qFileStream: TEncryptStream; buffer: string;begin qFileStream := TEncryptStream.Create('Test.txt', fmOpenWrite);//这里用打开写方式。可设其他常量值看帮助。 qFileStream.Seek(0, sofromEnd); Buffer := 'I here add a string';//写入文件的字符串 qFileStream.Write(Buffer[1], Length(Buffer));//缓冲区首址 AND 写入个数。 //qFileStream.Write(Pchar(Buffer)^, Length(Buffer));这样也行 qFileStream.Free;//别忘了释放end;//readvar qFileStream: TEncryptStream; buffer: string; qFileSize: Integer;begin qFileStream := TEncryptStream.Create('Test.txt', fmOpenRead); qFileSize := qFileStream.Seek(0, sofromEnd); SetLength(Buffer, qFileSize);//设置你要读的字符个数。 qFileStream.Seek(0, SoFromBeginning); qFileStream.Read(Pchar(Buffer)^, qFileSize); qFileStream.Free; Memo1.Text := Buffer;end; To laza前辈: Thank you. delphi query与sql主键约束的问题 bcb和delphi的线程问题! 谁有这本书? IE toolbar 如何通过修改注册表消失或者出现? delphi与com+ 初学者问个很傻的问题:请问在delphi中怎么增加属性、函数、过程的首尾。是由IDE自动加入还是人工编写的 TEdit和TBotton的结合使用问题,还有怎么给BOTTON定义颜色 一个三层应用问题! 请教,用ADO调用ACCESS数据库的数据快速定位方法 多人开发的问题 like的麻烦!!哎,帮帮忙! 请问怎样用DELPHI编个运行时WIN9X看不到的程序,只有最后100分,全给你们了。
用这个文件流类独写文件就行。文件内容是乱的。
可以试着改加密字符。
unit Encrypt;interface
uses
classes;type
TEncryptStream = class (TFileStream)
private
FKey: Char;
public
constructor Create(const FileName: string; Mode: Word);
function Read(var Buffer; Count: Longint): Longint; override;
function Write(const Buffer; Count: Longint): Longint; override;
property Key: Char read FKey write FKey default 'a';
end;
implementation{ TEncryptStream }constructor TEncryptStream.Create(const FileName: string; Mode: Word);
begin
inherited Create (FileName, Mode);
FKey := 'a';
end;function TEncryptStream.Read(var Buffer; Count: Integer): Longint;
var
pBuf, pEnc: PChar;
I, CountRead, EncVal: Integer;
begin
GetMem (pEnc, Count);
try
CountRead := inherited Read (pEnc^, Count);
pBuf := PChar (@Buffer);
for I := 0 to CountRead - 1 do
begin
EncVal := ( Ord (pEnc[I]) - Ord(Key) ) mod 256;
pBuf [I] := Chr (EncVal);
end;
finally
FreeMem (pEnc, Count);
end;
Result := CountRead;
end;function TEncryptStream.Write(const Buffer; Count: Integer): Longint;
var
pBuf, pEnc: PChar;
I, EncVal: Integer;
begin
GetMem (pEnc, Count);
try
pBuf := PChar (@Buffer);
for I := 0 to Count - 1 do
begin
EncVal := ( Ord (pBuf[I]) + Ord(Key) ) mod 256;
pEnc [I] := Chr (EncVal);
end;
Result := inherited Write (pEnc^, Count);
finally
FreeMem (pEnc, Count);
end;
end;end.
Thank you!
(2)如何给这些输入参数赋值以及如何设置输出参数的缓冲区大小等??????
问题多多,请你不要心烦呀!如果你解决了这些问题,我一定给你加分的(>10)
我现写了一个,时间比较仓促。你应该多看看帮助。Implementation
uses Encrypt;//引用加密流单元,可使用加密流类。
...//Write Block; 写文件。文件名应存在,创建文件看帮助,TFileStream 帮助
var
qFileStream: TEncryptStream;
buffer: string;
begin
qFileStream := TEncryptStream.Create('Test.txt', fmOpenWrite);//这里用打开写方式。可设其他常量值看帮助。
qFileStream.Seek(0, sofromEnd);
Buffer := 'I here add a string';//写入文件的字符串
qFileStream.Write(Buffer[1], Length(Buffer));//缓冲区首址 AND 写入个数。
//qFileStream.Write(Pchar(Buffer)^, Length(Buffer));这样也行
qFileStream.Free;//别忘了释放
end;//read
var
qFileStream: TEncryptStream;
buffer: string;
qFileSize: Integer;
begin
qFileStream := TEncryptStream.Create('Test.txt', fmOpenRead);
qFileSize := qFileStream.Seek(0, sofromEnd);
SetLength(Buffer, qFileSize);//设置你要读的字符个数。
qFileStream.Seek(0, SoFromBeginning);
qFileStream.Read(Pchar(Buffer)^, qFileSize);
qFileStream.Free;
Memo1.Text := Buffer;
end;