Delphi 中文MD5签名和Java MD5签名不一致的问题研究

项目中有个用Java做服务器,Delphi做客户端的项目,需要MD5加密,遇到中文就遇到MD5不一致的问题。

"张三"   Java MD5 615db57aa314529aaa0fbe95b3e95bd3  

第一轮,直接加密

json_md5:=LowerCase(Md5.HashStringAsHex('张三'));

Delphi MD5 ea03fcb8c47822bce772cf6c07d0ebbb

第二轮,考虑可能是中文没有转UTF-8编码的原因导致

json_md5:=LowerCase(Md5.HashStringAsHex(utf8encode('张三')));

Delphi MD5 ea03fcb8c47822bce772cf6c07d0ebbb  失败

 

第三轮:更换编码器

result:= LowerCase(Md5.HashStringAsHex('张三',IndyTextEncoding(Tencoding.UTF8)));

Delphi MD5 615db57aa314529aaa0fbe95b3e95bd3    成功

 

问题解决

你可能感兴趣的:(Delphi 中文MD5签名和Java MD5签名不一致的问题研究)