在线等JAVA转换成DELPHI
String md5key = new String(key.getKeyContent(), charset);
return new String(Base64.encodeBase64(DigestUtils.md5((content + md5key).getBytes(charset))), charset);
------解决方案--------------------
这不就是将一个字符MD5加密后,然后在BASE64编码吗,找个DELPHI版本的MD5算法,然后用DELPHI只带的控件进行BASE64编码不就行了
------解决方案--------------------
不知道java函数的charset是干什么的?
------解决方案--------------------
引用:String md5key = new String(key.getKeyContent(), charset);
return new String(Base64.encodeBase64(DigestUtils.md5((content + md5key).getBytes(charset))), charset);
……
uses IdHashMessageDigest, IdGlobal, EBase64;
procedure TForm13.btn1Click(Sender: TObject);
function ToUTF8Encode(str: string): string; //将字符串转UTF8编码
var
b: Byte;
begin
for b in BytesOf(UTF8Encode(str)) do
Result := Format('%s%%%.2x', [Result, b]);
end;
function Encode(const KeyContent, content : string) : string;//加密(密钥, 待加密串)
var
md5key : string;
MyMD5: TIdHashMessageDigest5;
begin
md5key := ToUTF8Encode(KeyContent);
MyMD5 := TIdHashMessageDigest5.Create;
try
Result := ToUTF8Encode(Base64EncodeString(MyMD5.HashStringAsHex(content + md5key, enUTF8)));
finally
MyMD5.free;
end;
end;
const
Key = 'abc';
var
Code : string;
begin
Code := Encode(Key, '123abc');
ShowMessage(Code);
end;