深圳全飞鸿

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 451|回复: 2
打印 上一主题 下一主题

md5的速度比较

[复制链接]

800

主题

1379

帖子

7704

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7704
跳转到指定楼层
楼主
发表于 2022-7-19 23:46:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前提: 要求至少算出来的结果和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


回复

使用道具 举报

800

主题

1379

帖子

7704

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7704
沙发
 楼主| 发表于 2022-7-19 23:48:01 | 只看该作者
结论好象是: indy方法计算字符串的速度快, hgz计算文件快!
回复 支持 反对

使用道具 举报

800

主题

1379

帖子

7704

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7704
板凳
 楼主| 发表于 2022-7-28 01:04:54 | 只看该作者
php的md5

var_dump(md5_file('smo.database.php'));
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|nagomes  

GMT+8, 2025-5-5 02:05 , Processed in 0.027318 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表