如题
解决方案 »
- 表的关联问题
- ADO连接SQLserver 如何去掉 database login的 对话框??(login promot 已经为 False)
- 谁有操作 MDB数据库的好例程啊:)
- DBGrid的问题,头痛!高手救救我!
- 关于在google上下载图片的问题
- 简单问题,在线求助!!
- 如何定制TChart.Title?
- 我做了个chm帮助,如何调用呀?用什么函数?ShellExecute吗?
- DELPHI6 中ADO与Oracle8i连接,总是连接出错,不知为何?请高手指点。
- TtreeView 能够和数据库内的节点一一对应吗?
- (pb论坛中没人解结)有一个大字符串,要将它拆分出,如何防止截起到半个汉字, pb中如何实现,我已被此折磨了1天了......
- dephi的帮助问题,急!
var
iFileHandle: Integer;
iFileLength: Integer;
Buffer: PChar;
i : integer;
cflag:boolean;
key:integer;
newfilename:string;
begin if not fileexists(filename) then //若文件不存在则返回
begin
result:=false;
exit;
end;
iFileHandle := FileOpen(FileName, fmOpenRead);
iFileLength := FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
Buffer := PChar(AllocMem(iFileLength + 1));
iFileLength := FileRead(iFileHandle, Buffer^, iFileLength);
FileClose(iFileHandle);
FileSeek(iFileHandle,0,0);
for i:=0 to iFileLength do //文件主体信息异或算法一次
begin
(Buffer+i)^:=chr(integer((Buffer+i)^) xor key);
end; iFileHandle := FileCreate(FileName);
Filewrite(iFileHandle, Buffer^, iFileLength);
FileClose(iFileHandle);
freemem(Buffer);
result:=true;
end;
const
c1 = 52845;
c2 = 22719;
function Encrypt (const s: string; Key: Word) : string;
var
i : byte;
begin
Result[0] := s[0];
for i := 1 to length (s) do
begin
Result[i] := Char (byte (s[i]) xor (Key shr 8));
Key := (byte (Result[i]) + Key) * c1 + c2
end
end;function Decrypt (const s: string; Key: Word) : string;
var
i : byte;
begin
Result[0] := s[0];
for i := 1 to length (s) do
begin
Result[i] := Char (byte (s[i]) xor (Key shr 8));
Key := (byte (s[i]) + Key) * c1 + c2
end
end;
你这段代码似乎有问题,很容易溢出。
有没有对字符串加密解密的,简单点就行。
var
i:byte;
begin
//result[0]:=s[0];
setlength(result,length(s));
for i:=1 to length(s) do
begin
result[i]:=char(byte(s[i])xor (key shr 8));
key:=(byte(result[i])+ key)*fc1+fc2;
end;
end;function mtop(const s:string;key:word):string;
var
i:byte;
begin
setlength(result,length(s));
for i:=1 to length(s) do begin
result[i]:=char(byte(s[i])xor(key shr 8));
key:=(byte(s[i])+key)*fc1+fc2;
end;
end;
fc1:=52845;
fc2:=22719;
strongq(火血狼) :这段代码运行到key:=(byte(s[i])+key)*fc1+fc2就
会溢出,另外,key取值多少?
转换成ASICC码,再加1,呵呵,能起到简单的信息屏蔽作用就行了。
散分吧。