怎样对文件进行加密和解密 用DES或3DES吧!不过好像加密数据长度有限制! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就用DES加密我有源代码,用C++Bullder写的。不过可以转成Delphi。 下面是我的代码,太简陋,各位老大不要笑话,权当抛砖引玉procedure TForm1.Button1Click(Sender: TObject);var i,j,totalcount:integer; filestream:Tfilestream; filename:string; tmpAsc:integer; buffer:string; buffersize:integer;beginopendialog1.Filter :='';if not opendialog1.Execute then exit;filename:=opendialog1.FileName ;trybegin filestream:=Tfilestream.Create(filename,fmopenread); //把文件读入字符串变量 buffersize:=filestream.Size ; setlength(buffer,buffersize); filestream.Read(pointer(buffer)^,buffersize); filestream.Free ; ///进行加密处理 for i:=1 to buffersize do begin tmpasc:=ord(buffer[i]); tmpasc:=tmpasc xor 12; buffer[i]:=chr(tmpasc); end; //写回文件 filestream:= tfilestream.Create(filename+'.mym',fmcreate); filestream.Write(pointer(buffer)^,buffersize); end; filestream.Free ;except showmessage(inttostr(getlasterror));end; showmessage('加密成功');end;procedure TForm1.Button2Click(Sender: TObject);var filename:string; filestream:Tfilestream; buffer:string; buffersize:integer; i:integer;beginopendialog1.Filter:=('加密文件|*.mym');if not opendialog1.Execute then exit;filename:=opendialog1.filename;try ///读 filestream:=Tfilestream.Create(filename,fmopenread); buffersize:=filestream.Size ; setlength(buffer,buffersize); filestream.Read(pointer(buffer)^,buffersize); filestream.Free ; //解密 for i:=1 to buffersize do begin buffer[i]:=chr(ord(buffer[i]) xor 12); end; //写回 filename:=copy(filename,1,length(filename)-4); filestream:=Tfilestream.Create(filename,fmcreate); filestream.Write(pointer(buffer)^,buffersize); filestream.free;except showmessage(inttostr(getlasterror));end;showmessage('解密完成');end; indy10 发数据问题 相对路径的问题 运用DBGridEh排序的时候报错:“capability not supported” 像素怎么转换成英寸单位?(在线等待) SQL Server的视图是否可以使用参数? shellexecute()和NMFTP判断文件的问题 关于控件的编写(在线等待,高分相送) 两个问题 如何向Toolbutton上贴图? 设计中,启动画面,登录窗口,能否不在主窗口的Create事件中? 高分求救:关于制作数据库(BDE)安装程序时的问题:(在线等待中......) 关于在线程中建立Socket连接的问题!()
我有源代码,用C++Bullder写的。不过可以转成Delphi。
procedure TForm1.Button1Click(Sender: TObject);
var i,j,totalcount:integer;
filestream:Tfilestream;
filename:string;
tmpAsc:integer;
buffer:string;
buffersize:integer;
begin
opendialog1.Filter :='';
if not opendialog1.Execute then exit;
filename:=opendialog1.FileName ;
try
begin
filestream:=Tfilestream.Create(filename,fmopenread);
//把文件读入字符串变量
buffersize:=filestream.Size ;
setlength(buffer,buffersize);
filestream.Read(pointer(buffer)^,buffersize);
filestream.Free ;
///进行加密处理
for i:=1 to buffersize do
begin
tmpasc:=ord(buffer[i]);
tmpasc:=tmpasc xor 12;
buffer[i]:=chr(tmpasc);
end;
//写回文件
filestream:= tfilestream.Create(filename+'.mym',fmcreate);
filestream.Write(pointer(buffer)^,buffersize);
end;
filestream.Free ;
except
showmessage(inttostr(getlasterror));
end;
showmessage('加密成功');
end;procedure TForm1.Button2Click(Sender: TObject);
var filename:string;
filestream:Tfilestream;
buffer:string;
buffersize:integer;
i:integer;
begin
opendialog1.Filter:=('加密文件|*.mym');
if not opendialog1.Execute then exit;
filename:=opendialog1.filename;
try
///读
filestream:=Tfilestream.Create(filename,fmopenread);
buffersize:=filestream.Size ;
setlength(buffer,buffersize);
filestream.Read(pointer(buffer)^,buffersize);
filestream.Free ;
//解密
for i:=1 to buffersize do
begin
buffer[i]:=chr(ord(buffer[i]) xor 12);
end;
//写回
filename:=copy(filename,1,length(filename)-4);
filestream:=Tfilestream.Create(filename,fmcreate);
filestream.Write(pointer(buffer)^,buffersize);
filestream.free;
except
showmessage(inttostr(getlasterror));
end;
showmessage('解密完成');
end;