Inn*_*rld 1 pdf delphi hash md5 couchdb
我正在使用Delphi从pdf文件生成哈希MD5.我想生成与CouchDB附件哈希相同的哈希,但我得到不同的结果.
我生成Hash的功能:
function TPliki.generujHashMD5(zawartoscPliku: TMemoryStream): string;
var
tekstPliku: string;
begin
setString(tekstPliku, PAnsiChar(zawartoscPliku.Memory), zawartoscPliku.Size);
result := THashMD5.GetHashString(tekstPliku);
end;
Run Code Online (Sandbox Code Playgroud)
附件中CouchDB中的设置:
compressible_types: text/*, application/javascript, application/json, application/xml
compression_level: 0
Run Code Online (Sandbox Code Playgroud)
您的代码问题在于您正在将PDF文件的内容 - 二进制数据转换为Unicode字符串,并且您正在改变其内容.这会改变你的哈希值.
您应该THashMD5以不同的方式使用,并直接提供二进制数据而不将其转换为字符串.
function TPliki.generujHashMD5(zawartoscPliku: TMemoryStream): string;
var
hash: THashMD5;
begin
hash := THashMD5.Create;
hash.Update(zawartoscPliku.Memory, zawartoscPliku.Size);
result := hash.HashAsString;
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
734 次 |
| 最近记录: |