DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: szliyu112358
今日帖子: 49
在线用户: 11
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 inbreak (入侵) ★☆☆☆☆ -
盒子活跃会员
2023/3/26 19:19:59
标题:
有人用 fastMD5吗? 浏览:1086
加入我的收藏
楼主: https://github.com/PassByYou888/FastMD5



function Str2MD5(const s:string):string;
  function MD5toString(D:MD5):string;   //在MD5前面要加一个T,论坛不允许所以去掉了。
  var
    I: byte;
  const
    Digits: array[0..15] of char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
  begin
    Result := '';
    for I := 0 to 15 do
      Result := Result + Digits[(D[I] shr 4) and $0f] + Digits[D[I] and $0f];
  end;
var
  pc:PChar;
begin
  pc := PChar(s);
  Result :=MD5toString(FastMD5(pbyte(PChar(s)),Length(pc)));
end;

我的用法有问题,感觉怪怪的。
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
作者:
男 inbreak (入侵) ★☆☆☆☆ -
盒子活跃会员
2023/3/26 20:55:29
1楼: 知道什么问题了。
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
作者:
男 tuao (tuao) ★☆☆☆☆ -
盒子活跃会员
2023/3/27 11:30:12
2楼: delphi有自带的md5为什么不用呢?
----------------------------------------------
tuao
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2023/3/27 11:56:39
3楼: delphi自带的md5等,非常慢,只能说是有这功能,比微软操作系统自带的差太远了
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2023/3/27 12:17:35
4楼: 这是一个没有意义的帖子。
既然帖子本身没有意义,那我就再加一个没有意义的回复吧。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 yxsoft (yxsoft) ★☆☆☆☆ -
盒子活跃会员
2023/3/27 16:20:19
5楼: 感觉注释是亮点
----------------------------------------------
Great!
作者:
男 hardnut (麦轲数据管家) ★☆☆☆☆ -
普通会员
2023/3/27 17:21:40
6楼: 我来给个有意义的回复: mormot.crypt.core 中也有md5函数,mormot 的性能一直是招牌。
----------------------------------------------
UniKeeper V10.40 -- 您最贴心的个人数据管理助手
作者:
男 inbreak (入侵) ★☆☆☆☆ -
盒子活跃会员
2023/3/27 20:43:24
7楼: to hardnut (麦轲数据管家)

mormot 比 fastmd5 快得多。

TThread.CreateAnonymousThread(
    procedure
    var
      t: Cardinal;
    begin
      t := GetTickCount;

      for var i := 0 to 9999999 do
        Str2MD5(i.ToString);

      Form1.ED_2.Text := (GetTickCount - t ).ToString;
    end).Start;


用fastMD5 需要 12秒,用 mormot 需要 2.5秒
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
作者:
男 1111111113 (1111111113) ▲△△△△ -
普通会员
2023/3/28 12:41:41
8楼: https://github.com/krisprice/simd_md5
https://github.com/animetosho/md5-optimisation
----------------------------------------------
-
作者:
男 roadrunner (roadrunner) ★☆☆☆☆ -
盒子活跃会员
2023/3/28 13:06:05
9楼: 追求速度的,考虑一下xxhash

https://gitee.com/YWtheGod/XXHASH4Delphi
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行46.875毫秒 RSS