深圳全飞鸿

标题: md5的速度比较 [打印本页]

作者: zhgc    时间: 2022-7-19 23:46
标题: md5的速度比较
前提: 要求至少算出来的结果和mysql及php里的md5函数计算结果要一至

灰鸽子的md5算法计算字符串
  1. var
  2.   tmp:string;
  3.   td:dword;
  4.     i,j:integer;
  5. begin
  6.   td:=gettickcount;
  7.   i:=0;
  8.   while(i<10000)do
  9.   begin
  10.     tmp:=StrMD5('http://www.nagomes.com/disc');
  11.     i:=i+1;
  12.   end;
  13.   td:=gettickcount-td;
  14.   memo1.Lines.Add(tmp+' '+inttostr(td)+'s');
  15. end;
复制代码


10000次的时间是 250s

indy的md5算法计算字符串
  1. var
  2.   tmp:string;
  3.   td:dword;
  4.   i,j:integer;
  5. begin
  6.   td:=gettickcount;
  7.   i:=0;
  8.   while(i<10000)do
  9.   begin
  10.     tmp:=StrToMD5('http://www.nagomes.com/disc');
  11.     i:=i+1;
  12.   end;
  13.   td:=gettickcount-td;
  14.   memo1.Lines.Add(tmp+' '+inttostr(td)+'s');
  15. end;
复制代码


10000次的时间是47s

灰鸽子的md5算法计算文件
  1. var
  2.   tmp:string;
  3.   td:dword;
  4.   i,j:integer;
  5.   filesen:TMemoryStream;
  6. begin

  7.   i:=0;
  8.    filesen:=TMemoryStream.Create;
  9.    filesen.LoadFromFile('D:\project.syant\0005PHP\htdocs\rub\smo.database.php');

  10.   td:=gettickcount;
  11.   while(i<1000)do
  12.   begin

  13.     tmp:=GetMD5(filesen.Memory,filesen.Size);
  14.     i:=i+1;
  15.   end;
  16.   td:=gettickcount-td;

  17.   filesen.Free;
  18.   memo1.Lines.Add(tmp+' '+inttostr(td)+'s');
  19. end;
复制代码



1000次的时间是266s

indy的md5算法计算字符串
  1. var
  2.   tmp:string;
  3.   td:dword;
  4.   filesen:TMemoryStream;
  5.     i,j:integer;
  6. begin
  7.   i:=0;
  8.    filesen:=TMemoryStream.Create;
  9.    filesen.LoadFromFile('D:\project.syant\0005PHP\htdocs\rub\smo.database.php');

  10.   td:=gettickcount;
  11.   while(i<1000)do
  12.   begin
  13.     filesen.Position:=0;
  14.     tmp:=StreamToMD5(filesen);
  15.     i:=i+1;
  16.   end;
  17.   td:=gettickcount-td;

  18.   filesen.Free;
  19.   memo1.Lines.Add(tmp+' '+inttostr(td)+'s');
  20. end;
复制代码



1000次的时间是 407s



作者: zhgc    时间: 2022-7-19 23:48
结论好象是: indy方法计算字符串的速度快, hgz计算文件快!

作者: zhgc    时间: 2022-7-28 01:04
php的md5

var_dump(md5_file('smo.database.php'));




欢迎光临 深圳全飞鸿 (http://www.nagomes.com/disc/) Powered by Discuz! X3.2