加密代码没有问题的
因为在单部调试的时候对字符串一点没有问题,我用的一种方法如下代码:
function Crypt(const s: string; Key: Word; const bEncrypt: boolean = True): string; overload;
//jerryshow 字符串True加密 false解密!!
var
i : integer;
begin
SetLength(Result, Length(s));
for i := 1 to length(s) do
begin
if bEncrypt then
Result:=chr(ord(s) xor key)
else
Result:=chr(ord(s) xor key);
end;
end;
加密解密代码
MystringList1:=TStringList.Create;
MystringList2:=TStringList.Create;
MystringList3:=TStringList.Create;
Mystringlist1.LoadFromFile('d:/temp2.txt');
memo1.Text :=mystringlist1.Text;
mystringlist2.Text:=crypt(mystringlist1.Text,255,true);
mystringlist2.SaveToFile('d:/temp1.txt') ;
mystringlist1.Clear;
mystringlist2.Clear;
mystringlist1.LoadFromFile('d:/temp1.txt') ;
mystringlist2.Text:=crypt(mystringlist1.Text,255,false);
mystringlist2.SaveToFile('d:/temp3.txt') ;
memo2.Text :=mystringlist2.Text ;
MystringList1.Free;
MystringList2.Free; MystringList3.Free;
通过上程序获得的'd:/temp2.txt'和'd:/temp3.txt'值部分不一样
加密前:
100#客舱下半区#编号(默认)#到后气密隔框的机身的下半部##
200#客舱上半区#编号(默认)#到后气密隔框的机身的上半部##
300#尾部#编号(默认)#尾部标准系列号##
400#动力装置和支柱#编号(默认)#动力装置和支柱##
500#左翼#编号(默认)#左翼##
600#右翼#编号(默认)#右翼##
700#起落架#编号(默认)#起落架和起落架舱门##
800#舱门#编号(默认)#货舱及客舱舱门、舱门密封条和锁销##
900#保留区域#编号(默认)#保留,用于标准系列号未涉及到的飞机型号间的显著差别##
320#创面地方#编号(默认)#阿瑟发大幅度#阿瑟多幅所附所附#
710#A区域#编号(默认)#飞机轮胎,起落架收放部分#李林#
130#设备舱#编号(默认)#客舱下半部包括空调系统,电源系统,指示记录系统等在内的区域#李林#
解密后:
100#客舱下半区#编号(默认)#到后气密隔框醯幕?淼南掳氩?#
200#客舱上半区#编号(默认)#到后气密隔框醯幕?淼纳习氩?#
300#尾部#编号(默认)#尾部标准系列号##
400#动力装置和支柱#编号(默认)#动力装置和支柱##
500#左翼#编号(默认)#左翼##
600#右翼#编号(默认)#右翼##
700#起落架#编号(默认)#起落架和起落架舱门##
800#舱门#编号(默认)#或醪占翱筒詹彰拧⒉彰琶芊馓蝓和锁销##
900#保留区域?编号(默认)#保留,用于标准系列号未涉及到的飞机型号间的显著差别##
320#创面地方#编号(默认)#阿瑟发大幅度#阿瑟多幅所附所附#
710#A区域?编号(默认)#飞机轮胎,起落架收放部分#李林#
130#设备舱#编号(默认)#客舱下半部包括空调系统,电源系统,指示记录系统等在内的区域?李林#
蝓