Delphi 计算 MD5  
官方Delphi 学习QQ群: 682628230(三千人)
频道

Delphi 计算 MD5


Delphi 计算 MD5

在密码学中,MD5(Message-Digest Algorithm 5,Message Digest Algorithm 5)是一种 128 位的密码缩减算法,是当今最常用的算法之一。


最常用的用途之一是检查文件是否未被修改。


使用它的最好例子之一是,当我们从 Internet 下载文件时,分发者给我们MD5 哈希值,以便在下载后检查它并验证它没有更改。


的MD5散列是128位长,但一般是在其32位的十六进制值读取。


Delphi中的MD5函数

Delphi 作为一种能够创建计算文件 MD5 的函数的编程语言并不例外。


要执行此功能,我们将需要三个单元,它们是IdHashMessageDigest、 idHash和IdGlobal。


在这种情况下,我们执行两个类似的函数,一个计算字符串中的 MD5,另一个计算文件中的 MD5。


uses IdGlobal, IdHash, IdHashMessageDigest;

 

function getFileMd5HashString(const vFileName: string): string;

var

  vHashMD5: TIdHashMessageDigest5;

  vFile: TFileStream;

begin

  vFile := TFileStream.Create(vFileName, fmOpenRead OR fmShareDenyWrite);

  vHashMD5 := nil;

  try

    vHashMD5 := TIdHashMessageDigest5.Create;

    Result := IdGlobal.IndyLowerCase(vHashMD5.HashStreamAsHex(vFile));

  finally

    vHashMD5.Free;

  end;

end;

 

function getMd5HashString(const vValue: string): string;

var

  vHashMD5: TIdHashMessageDigest5;

begin

  vHashMD5 := nil;

  try

    vHashMD5 := TIdHashMessageDigest5.Create;

    Result := IdGlobal.IndyLowerCase(vHashMD5.HashStringAsHex(vValue));

  finally

    vHashMD5.Free;

  end;

end;

它的使用形式如下:


procedure TForm1.Button1Click(Sender: TObject);

begin

  // 计算字符串 MD5

  showmessage(getMd5HashString('www.delphiw.com'));

 

  // 计算文件 MD5

  showmessage(getFileMd5HashString('c:\delphiw.xls'));

end;



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.042611122131348 seconds