key =0X499602DB
M1 =0XFAFAFAFA
IA1 =0XF7F7F7F7
IC1 =0XF5F5F5F5
数据:594FF2C9CFC457A88E99110856BE028D02B16BCC21546F5D0ADA65056AA6E7B2
解密:550013011114431011055207021387930040003C00000000030001100F000000C程序:Const unsigned long M1 =A; 
Const unsigned long IA1 =B; 
Const unsigned long IC1 =C; 
Void encrypt(
unsigned long key, 
unsigned char* buffer, 
unsigned short size ) 
{
unsigned short idx = 0; 
if( key == 0 ) key = 1; 
while( idx < size ) 
{
key = IA1 * ( key % M1 ) + IC1; 
buffer[idx++] ^= (unsigned char)((key>>20)&0xFF); 

}delphi程序:procedure encrypt(M1,IA1,IC1,key:DWORD;var info:string;size:word);
var
  idx:word;
  str:string;
begin
  idx := 0;
  str:=info;
  if key = 0 then key := 1;
  while (idx < size) do
  begin
    key := IA1 * (key mod M1) + IC1;
    info[idx]:=chr( ord(str[idx]) xor ((key shr 20)and 255));
    inc(idx);
  end;
end;
C函数和delphi函数解不出一样的结果,请两种语言都懂的高手帮忙看看,先谢谢了delphi解密C语言同样结果