MD5 文件哈希 - 将 Delphi 输出与 PHP md5_file 函数匹配
我目前正在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将结果与:
md5(file_get_contents( ))
(PHP 中)hash( “md5”, )
来自 PHP 哈希框架扩展命令行程序 md5(1) 又名
md5sum(1)
如果除了一个人之外的所有人都同意总和是多少,那么您就知道在哪里挖掘。
Compare your results with:
md5(file_get_contents( ))
in PHPhash("md5", )
from the PHP hash framework extensionthe command line programs md5(1) aka
md5sum(1)
If all but one agree what the sum is, then you know where to dig.
好吧,您没有提供 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.