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