谢谢大佬给的思路,搞出来了 function BytesToHex(Data: TBytes): AnsiString; const Digits: array[0..15] of AnsiChar = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'); var I, Len: Integer; B: Byte; Buffer: PAnsiChar; begin Result := ''; Len := Length(Data); if Len = 0 then Exit;
Buffer := @Data[0]; for I := 0 to Len - 1 do begin B := PByte(Integer(Buffer) + I)^; Result := Result + {$IFDEF UNICODE}string{$ENDIF} (Digits[(B shr 4) and $0F] + Digits[B and $0F]); end; end; procedure TForm1.btn1Click(Sender: TObject); begin var content := '{"result":{"sign_type":"md5","sign":"","code":"10000","msg":"接口调用成功,并且业务系统也处理成功"},"body":"B06yK+h55/LYcgcjeanAn8aLV28ALqOa0IhUpNq2X9I="}'; var md5 := THashMD5.Create; var B := md5.GetHashBytes(BytesToHex(TEncoding.UTF8.GetBytes(content))); var res := TNetEncoding.Base64.EncodeBytesToString(@B[0], length(b)); showmessage(res); end;
----------------------------------------------
-