项目中有个用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 成功
问题解决