在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签名字符串。