读书人

相关delphi的utf8sha-1和base64

发布时间: 2012-12-31 11:57:52 作者: rapoo

有关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);
}

text是121122
return是wZ6LpbQl6S2GtHGsAasNJAark7E=

delphi好像没有标准的SHA1的转码函数,base64的找到了,在EncdDecd这个单元里有,我怎么写都写不出.net转码的结果。
delphi已经被我写成这样了,已经完全晕了,请高手帮我看看,我是神马地方搞错了。
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;


谁能帮帮我。。。。
[解决办法]
delphi官方没有出sha1
可以下载个cnvcl,里面有sha1.pas

读书人网 >.NET

热点推荐