我目前在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;
我试图让输出与PHP函数相同
md5_file()
我已经浏览了一下,常见问题似乎是编码而不是用零填充,但我不知道如何使用TIdHashMessageDigest5执行其中任何一项,或者它们是否已在函数中完成。
如果有人为此使用任何功能,我们将非常感激!
或者可能是一种改变php功能以匹配Indy的方法
答案 0 :(得分:6)
将您的结果与:
进行比较 md5(file_get_contents( ))
hash("md5", )
命令行程序md5(1)aka 的md5sum(1)
如果所有人都同意这笔款项,那么你就知道在哪里挖掘。
答案 1 :(得分:3)
好吧,你没有提供Delphi版本号,但如果你在D2007或更高版本,你可能想看看this article.