有关delphi的utf8,sha-1和base64
C#代码是这样的:
public string Hash(string text)
{
var data = Encoding.UTF8.GetBytes(text);
SHA1 sha = new SHA1CryptoServiceProvider();
var code = sha.ComputeHash(data);
return Convert.ToBase64String(code);
}
procedure TForm1.btn1Click(Sender: TObject);
var
Context: TSHA1Context;
Digest: TSHA1Digest;
s: string;
sm_in,sm_out: TStringStream;
buf:TBytes;
begin
s:=UTF8Encode('121122');
SHA1Init(Context);
SHA1Update(Context,@s[1],length(s));
SHA1Final(Context,Digest);
SetLength(buf,Length(Digest));
move(Digest[0],buf[0],Length(Digest));
//buf:=Digest;
sm_in:=TStringStream.Create(buf);
sm_out:=TStringStream.Create;
EncodeStream(sm_in, sm_out);
ShowMessage(sm_out.DataString);
end;