壓縮包中有整個項目的源代碼,其中用以編碼的類MD5在單元文件SF_MD5.PAS中,MD5類的bmsj方法用以寫入字符串數據,MD5bm屬性用以返回MD5編碼,註意MD5bm返回後會清空緩沖數據。參考以下調用代碼:
var
m : MD5;
s1,s2 : string;
begin
m:=MD5.Create;
m.bmsj('a');
s1:=m.MD5bm; //'a'返回0CC175B9C0F1B6A831C399E269772661
s2:=m.MD5bm; //空數據返回D41D8CD98F00B204E9800998ECF8427E
end;
使用bmsj時可以將數據分批寫入。參考以下調用代碼:
var
m : MD5;
s : string;
begin
m:=MD5.Create;
m.bmsj('a');
m.bmsj('b');
m.bmsj('c');
s:=m.MD5bm; //'abc'返回900150983CD24FB0D6963F7D28E17F72
end;
這次對MD5類的bmsj過程進行了重載如下:使得bmsj可以對Delphi中的任意數據進行編碼。
procedure bmsj(p : Pointer; n : Cardinal); overload; //編碼數據1
第壹個參數是指向數據的指針,
第二個參數是數據的長度,以字節為單位。
單元文件SF_MD5.PAS中添加了WJMD5類,派生於線程TThread類,可以對文件進行編碼,由於是線程所以在編碼過程中可以暫停,中止編碼。程序的外觀進行了如下修改:以適用於文件編碼。