【发布时间】:2013-12-12 02:51:42
【问题描述】:
经过痛苦的调试会话后,我发现TIdHashSHA1.HashStream 不尊重它的ASize 参数。考虑以下代码:
var
Hasher: TIdHashSHA1;
MS: TMemoryStream;
begin
MS := TMemoryStream.Create;
Hasher := TIdHashSHA1.Create;
try
MS.LoadFromFile('C:\windows\notepad.exe');
MS.Position := 0;
ShowMessage(Hasher.HashStreamAsHex(MS));
MS.Position := 0;
ShowMessage(Hasher.HashStreamAsHex(MS, 0, MS.Size - 10));
finally
Hasher.Free;
MS.Free;
end;
end;
结果是一样的。这是一个错误还是我做错了什么?如果它确实是一个错误,那么在不复制我想要散列的部分流的情况下绕过它的最简单方法是什么?
【问题讨论】:
标签: delphi delphi-2010 indy