TEA加密有关问题

TEA加密问题
我在研究QQ的TEA加密是定义了一个数组
a:array   [0..15]   of   byte;
这里面随机生成255以内的整形数据......作为密钥........
又有了一个固定的明文数组
b:array   [0..6]   of   byte=($01,$05,$7E,$53,$26,$01,$7F);
有定义了个数组w:array   [0..23]   of   byte;
用于存放加密后的结果.
以下是TEA加密代码.....
我应该怎么调用这个函数呢?

type
    TLongintArray   =   array[0..3]   of   Longword;
    PLongintArray   =   ^TLongintArray;

procedure   Encipher(v,   k,   w:   PLongintArray);

implementation

procedure   Encipher(v,   k,   w:   PLongintArray);
var
    y,   z,   a,   b,   c,   d,   sum,   delta:   Longword;
    n:   Longint;
begin
    y   :=   ntohl(v^[0]);
    z   :=   ntohl(v^[1]);
    a   :=   ntohl(k^[0]);
    b   :=   ntohl(k^[1]);
    c   :=   ntohl(k^[2]);
    d   :=   ntohl(k^[3]);
    sum   :=   0;
    delta   :=   $9E3779B9;
    for   n   :=   1   to   16   do
    begin
        Inc(sum,   delta);
        Inc(y,   ((z   shl   4)   +   a)   xor   (z   +   sum)   xor   ((z   shr   5)   +   b));
        Inc(z,   ((y   shl   4)   +   c)   xor   (y   +   sum)   xor   ((y   shr   5)   +   d));
    end;
    w^[0]   :=   htonl(y);
    w^[1]   :=   htonl(z);
end;

------解决方案--------------------
刚看到你的站内短信。

uses AdSocket;//可能需要引用这个单元

.....
.....

procedure TForm1.Button1Click(Sender: TObject);
const
b : array [0..6] of byte=($01,$05,$7E,$53,$26,$01,$7F);
var
a : array [0..15] of byte;
w : array [0..23] of byte;
begin
{这里是 a (以及w) 两个数组赋初值的部分。}
Encipher(@b, @a, @w); //因为参数是指针类型,所以,把三个数组的地址作为参数
{ 此时w数组已得到了结果 }
end;

我没用过TApdSocket.htonl和TApdSocket.ntohl这两个函数,我这里也不知道怎么得到AdSocket这个单元, 所以,我没法给你调试。思路应该就是上面这样,你试一下,至于Encipher(@b,@a,@w); 这句里@b和@a两个参数的顺序,我不确定,你可以交换一下试。

我无法调试啊,呵呵,只能这样回答了