在C#中有一如下函数:using System.Security.Cryptography;public static string HashBase64(string str)
{
try
{
MD5 md = new MD5CryptoServiceProvider();
byte[] result = md.ComputeHash(System.Text.Encoding.UTF8.GetBytes(str));
return Convert.ToBase64String(result);
}
catch
{
return "";
}
}
比如传入“abc123” 则返回“6ZoYxCjLONXyYIU2eJIuAw==”,传入“123456” 则返回“4QrcOUm6Wau+VuBX8g+IPg==”24位长度的字符串,请教如何用delphi实现呢?
{
try
{
MD5 md = new MD5CryptoServiceProvider();
byte[] result = md.ComputeHash(System.Text.Encoding.UTF8.GetBytes(str));
return Convert.ToBase64String(result);
}
catch
{
return "";
}
}
比如传入“abc123” 则返回“6ZoYxCjLONXyYIU2eJIuAw==”,传入“123456” 则返回“4QrcOUm6Wau+VuBX8g+IPg==”24位长度的字符串,请教如何用delphi实现呢?
uses
EncdDecd, IdHash, IdHashMessageDigest;function HashBase64(str: String): String;
var
Digest: T4x4LongWordRecord;
sTemp : String;
begin
with TIdHashMessageDigest5.Create do Digest := HashValue(str);
SetLength(sTemp, Sizeof(Digest));
CopyMemory (@sTemp[1], @Digest, Sizeof(Digest));
Result := EncodeString(sTemp);
end;