高分求解delphi传输文件时加密

来源:百度知道 编辑:UC知道 时间:2024/05/03 16:26:01
程序如下:if opendialog1.Execute then //打开文件
begin
filename:=opendialog1.FileName; //取得文件名
TSendThread.createThread(tempitem.SubItems.Strings[1],extractfilename(filename)); //调用 TSendThread.createThread创建线程
end;

end;

constructor TSendThread.createThread(IP,FileName:string);
begin
Fip:=IP;
FFilename:=filename;
FreeonTerminate:=true; //现成执行完后自动关闭
inherited create(false); //自动执行。。。TSendThread.Execute;
end;

procedure TSendThread.Execute;
var socket:tidtcpclient;
fs:tfilestream;
begin
try
socket:=tidtcpclient.Create(nil); //建立SOCKET
socket.Host:=Fip; //连接IP及端口
socket.Port:=9923;
socket.Connect();
if socket.Connected then //连接
begin
fs:=tfilestream.Create(FFileName,fmopenread); //从本机读取文件
try
socket.WriteLn('TRANSF

/* 收藏的一个MD5加密解密
1、 MD5String、MD5File、MD5Print、MD5Match这四个函数是供调用的。其他是用来辅助这几个函///////数//的子函数。
2、MD5String为加密字符串。
3、MD5File为加密这个文件。
4、MD5Print是将加密后的密文转换成字符串。
5、MD5Match是用来比较密文是否一致。

加密字符串aaa MD5String('aaa')
将加密后的aaa显示出来 MD5Print(MD5String('aaa'))
比较两次密文是否一致: MD5Match(MD5String('第一次明文'),MD5String('第二次输入的明文'))
*/

unit U_MD5;

// -----------------------------------------------------------------------------------------------
INTERFACE
// -----------------------------------------------------------------------------------------------

uses
Windows;

type
MD5Count = array[0..1] of DWORD;
MD5State = array[0..3] of DWORD;
MD5Block = array[0..15] of DWORD;
MD5CBits = array[0..7] of byte;
MD5Digest = array[0..15] of byte;
MD5Buffer = array[0..63] of byte;
MD5Context = record
State: MD5State;
C