Delphi中MD5实现方法(转)

2018-06-17 18:56:47来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

原来写过一个计算MD5的程序,是用了一个叫MD5.pas的单元,使用起来还算简单,但还有更简单的办法,安装了indy就会有IdHashMessageDigest单元(delphi 7默认安装indy)

有篇文章教怎么用IdHashMessageDigest计算字符串md5,计算文件md5却没有说,在这里补充一下,先看计算函数:

function TIdHashMessageDigest4.HashValue(AStream: TStream): T4x4LongWordRecord;参数类型是一个流就可以返回T4x4LongWordRecord类型的值,使用function TIdHash128.AsHex(const AValue: T4x4LongWordRecord): string;把T4x4LongWordRecord转换为字符串就可以显示出来,到这里就简单了,把一个文件以流的方式读取,使用HashValue就计算出MD5了,流的使用很简单,TFileStream.Create(const FileName: string; Mode: Word);参数FileName就是文件的路径,Mode就是打开方式,使用fmOpenRead以读方式打开,如果要计算大型文件最好使用线程来操作.以下是实例代码:

在uses添加IdHashMessageDigest

procedure TForm1.Button1Click(Sender: TObject);

var

mymd5:TIdHashMessageDigest5;

begin

mymd5:=TIdHashMessageDigest5.Create;

ShowMessage(mymd5.AsHex(mymd5.HashValue('admin')));//计算字符串admin的MD5

ShowMessage(Copy(mymd5.AsHex(mymd5.HashValue('admin')),9,16));//获取16位字符串MD5

ShowMessage(mymd5.AsHex(mymd5.HashValue(TFileStream.Create('e:\VRMPVOL_CNsp2.iso',fmOpenRead))));//计算文件MD5

mymd5.Free;

end;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:[修正] Firemonkey Android 文字斜粗体显示不全的问题

下一篇:【Spine】Spine Runtime for Delphi移植笔记(四) - spine.clas