一段登陆验证服务器需要的加密解密过程,c语言的东西,帮忙翻译成delphi的,要注释
stgsd 2004-10-16 10:06:08 **这是客户端连接代理时候代理处理的代码//**
void CListenSocket::OnAccept(int nErrorCode)
{ char buf[0x1000];
char codebuf[0x1000];
int retval=0;
unsigned int bytesend=0;
//MMSG msg;
const char mirver[]="<mir152>";
const char fjdshfa[]="<C7ACA755D8C89168D6FCB949EA62CC1B32B03AA77443C73FFCA7533C5D1A6DD740E8>";
const char answer[]= "<C7ACA755D8C89168D6FCB949EA62CC1B32B03AA77443C73FFCA7533C5D1A6DD740E824>";
const char pass[]="<pass>";
CString str;
CString account;
CString password;
CSocket sktClient;
CSocket sktServer;
if(Accept(sktClient))
{ retval=sktClient.Receive(buf,0x1000);
buf[retval]=(char)0;
if(strcmp(buf,mirver)!=0)
{ sktClient.Close();
return;
}
sktClient.Send(fjdshfa,strlen(fjdshfa));
retval=sktClient.Receive(buf,0x1000);
buf[retval]=(char)0;
if(strcmp(buf,answer)!=0)
{ sktClient.Close();
return;
}
sktClient.Send(pass,strlen(pass));
retval=sktClient.Receive(buf,0x1000);
buf[retval]=(char)0;
if(buf[retval-1]=='>')
buf[retval-1]=(char)0;
DecodeGate(&buf[1],codebuf);
sktServer.Create();
if(sktServer.Connect(m_ServerIp,7000)==0)
{ AfxGetMainWnd()->MessageBox("连接服务器失败",m_ServerIp); sktClient.Close();
return;
}
bytesend=0;
do
{
retval=sktServer.Send(codebuf+bytesend,strlen(codebuf)-bytesend);
if (retval==SOCKET_ERROR)
{
sktClient.Close();
sktServer.Close();
return;
}
bytesend+=retval;
}
while(bytesend < strlen(codebuf));
retval=sktServer.Receive(buf,0x1000);
buf[retval]=(char)0;
ZeroMemory(codebuf,0x1000);
EncodeGate(buf,codebuf);
sprintf(buf,"<%s>",codebuf);
sktClient.Send(buf,strlen(buf));
retval=sktClient.Receive(buf,0x1000);
buf[retval]=(char)0;
if(buf[retval-1]=='>')
buf[retval-1]=(char)0;
DecodeGate(&buf[1],codebuf);
bytesend=0;
do {
retval=sktServer.Send(codebuf+bytesend,strlen(codebuf)-bytesend);
if(retval==SOCKET_ERROR)
{ sktClient.Close();
sktServer.Close();
return; }
bytesend+=retval;
}
while(bytesend < strlen(codebuf));
retval=sktServer.Receive(buf,0x1000);
buf[retval]=(char)0;
ZeroMemory(codebuf,0x1000);
EncodeGate(buf,codebuf);
sprintf(buf,"<%s>",codebuf);
sktClient.Send(buf,strlen(buf)); }
sktClient.Close();
sktServer.Close();
CSocket::OnAccept(nErrorCode);}//****************************************************