为什么INDY中MD5控件出来的值和网上C#中MD5值不一样啊该如何解决

为什么INDY中MD5控件出来的值和网上C#中MD5值不一样啊?
以下为函数
///////////////////////////md5
AnsiString   __fastcall   Strip(AnsiString   S)
{
return   S.Delete(1,   2);
}

AnsiString   md5ToString(AnsiString   S)
{
        AnsiString   AHex;

        for   (int   i=1;   i <=S.Length();   i++)
        {
          AHex   +=   IntToHex((unsigned   char)S[i],   2);//   +   "   ";
        }

        return   AHex;
}
String   Md5Str(String   src)
{
TIdCoderMD5   *md5=new   TIdCoderMD5(NULL);
md5-> Reset();
md5-> AutoCompleteInput   =   true;
String   tmp1   =   md5-> CodeString(src);
String   tmp2   =   Strip(md5-> CodeString(src));
String   tmp=md5ToString(md5-> CodeString(src));
delete   md5;
md5=NULL;
return   tmp;
}
//////////////////////////md5   end
Edit1-> Text   =   123;
Edit2-> Text   =   Md5Str(Edit1-> Text);
//网上MD5的值:
MD5加密值(16位):ac59075b964b0715
MD5加密值(32位):202cb962ac59075b964b07152d234b70
//自动生成对象后得到值:303B73E1CF6540F8E946464E691B15416544
//放控件后得到值:707CB0762E5F098DE19CE860472F843E

并且自己放控件生成的值和自动生成MD5对象后生成的值也不一样?为什么会是这样呢?


------解决方案--------------------
MD5 是公开算法,参数略为不同结果自然不同了
------解决方案--------------------
大个比方:某款锁而言,其设计结构都是一样的,但弹子大小位置不同(参数),所以需要不同的钥匙才能开启(密钥)
------解决方案--------------------
按理应该一样的,INDY的MD5没用过,不过MD5 For C++的网上有一堆

------解决方案--------------------
有下载