MD5 文件哈希 - 将 Delphi 输出与 PHP md5_file 函数匹配

发布于 2024-08-16 09:40:21 字数 619 浏览 4 评论 0原文

我目前正在 Delphi 7 中使用此代码进行 md5 哈希:

function MD5(const fileName : string) : string;
var
  idmd5 : TIdHashMessageDigest5;
  fs : TFileStream;
begin
  idmd5 := TIdHashMessageDigest5.Create;
  fs := TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite) ;
  try
    result := idmd5.AsHex(idmd5.HashValue(fs)) ;
  finally
    fs.Free;
    idmd5.Free;
  end;
end;

并且我试图获得与

md5_file()

我查看过的 PHP 函数相同的输出,常见问题似乎是编码而不是用零填充,但是我不知道如何使用 TIdHashMessageDigest5 执行这些操作,也不知道它们是否已在函数中完成。

如果有人有任何用于此目的的功能,我们将不胜感激!

或者可能是一种更改 php 函数以匹配 Indy 函数的方法

I'm currently using this code for md5 hashing in Delphi 7:

function MD5(const fileName : string) : string;
var
  idmd5 : TIdHashMessageDigest5;
  fs : TFileStream;
begin
  idmd5 := TIdHashMessageDigest5.Create;
  fs := TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite) ;
  try
    result := idmd5.AsHex(idmd5.HashValue(fs)) ;
  finally
    fs.Free;
    idmd5.Free;
  end;
end;

and I'm trying to get the output the same as the PHP function

md5_file()

I've had a look around and common problems seem to be encoding and not padding with zeroes, but I don't know how to do either of these using TIdHashMessageDigest5 or whether they are already done in the function.

If anyone has any functions they use for this it'd be very appreciated!

Or possibly a way of changing the php function to match the Indy one

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光倒影 2024-08-23 09:40:21

将结果与:

  • md5(file_get_contents( ))(PHP 中)

  • hash( “md5”, ) 来自 PHP 哈希框架扩展

  • 命令行程序 md5(1) 又名
    md5sum(1)

如果除了一个人之外的所有人都同意总和是多少,那么您就知道在哪里挖掘。

Compare your results with:

If all but one agree what the sum is, then you know where to dig.

忘年祭陌 2024-08-23 09:40:21

好吧,您没有提供 Delphi 版本号,但如果您使用的是 D2007 或更高版本,您可能需要查看 这篇文章。

Well, you didn't give a Delphi version number, but if you're on D2007 or later you might want to check out this article.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文