在delphi自帶的indy控件中其實是提供了md2,md4,md5對象的,我們可以直接使用它們來完成md5的簽名算法。而不需要再去找其它的dll或是pas了。
在uses單元中引用 idhashmessagedigest 單元,再寫如下代碼即可以達到md5的實作。
示例代碼
procedure tform1.button1click(sender: tobject);
var
mymd5: tidhashmessagedigest5;
digest: t4x4longwordrecord;
begin
mymd5 := tidhashmessagedigest5.create;
digest := mymd5.hashvalue('');
showmessage('32: ' + mymd5.ashex(digest)); //顯示32個字元長度的md5簽名結果
showmessage('16: ' + copy(mymd5.ashex(digest), 9, 16)); //顯示16個字元長度的md5簽名結果
end;
說明:
mymd5.hashvalue 函數中可以是一個字元串或是一個流對象,它傳回的結果類型為 t4x4longwordrecord 的md5簽名後結果
mymd5.ashex 函數是将t4x4longwordrecord的md5簽名轉換成為十六進制的md5簽名字元串。