天天看点

Delphi中的加密算法(MD5,MD4,MD3...)

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

继续阅读