简单的工作室

用delphi自带的Indy控件实现MD5加密

时间:2011-01-04 19:56来源:未知 作者:admin 点击:
在Delphi里实现MD5加密其实很容易!方法如下: 在Uses单元中引用 IdHashMessageDigest,IdGlobal, IdHash 单元,再写如下代码即可以达到MD5的实现。 示例代码 procedure TForm1.Button1Click(Sender: TObject); var MyMD5: TIdHashMessageDigest5; Digest: T4x4LongWordR

在Delphi里实现MD5加密其实很容易!方法如下:

在Uses单元中引用 IdHashMessageDigest,IdGlobal, IdHash 单元,再写如下代码即可以达到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签名字符串
 

另外需要注意一点的是通过MD5进行数据验证,比如delphi客户端生成加密好的一个密文,再与ASP网站数据库里MD5密文进行验证的时候,需要注意大小写,要不然也无法正确验证的,下面是根据上面的资料我自己写的一个MD5加密函数。

  1. function MD5Ecryption(source:String):string;//MD5加密  
  2. var  
  3.   MyMD5:TIdHashMessageDigest5;  
  4.   Digest:T4x4LongWordRecord;  
  5.   ciphertext:String;//返回密文  
  6. begin  
  7.   Result :'';  
  8.   MyMD5 :TIdHashMessageDigest5.Create;  
  9.   Digest :MyMD5.HashValue(source);  
  10.   ciphertext :MyMD5.AsHex(Digest);  
  11.   ciphertext :LowerCase(ciphertext);//密文转换为小写  
  12.   Result :ciphertext;  
  13. end; 

 

 

(责任编辑:简单的工作室)
顶一下
(0)
0%
踩一下
(10)
100%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容