没脾气2x:
我改段你的程序吧。咯咯,发了贴以后改了好几次。
[阅读: 567] 2007-04-17 02:06:14
function String GetMD5( wstr: WideString )
var
md5: IdHashMessageDigest.TIdHashMessageDigest5;
utf8ForMD5: String;
strMD5: String;
begin
md5 := IdHashMessageDigest.TIdHashMessageDigest5.Create;
try
utf8ForMD5 := UTF8Encode( wstr );
strMD5 := md5.AsHex( md5.HashValue(utf8ForMD5) );
// 对 IdHash 不了解,学着你的用法用的。
Result := strMD5;
finally
md5.Free;
end;
end;
procedure TFormMain.BBtnCheckMd5Click(Sender: TObject);
var
strMD5: String;
begin
strMD5 := GetMD5( WideString( Mdata.Lines.Text ) );
// 强调一下这里是经 AnsiString 到 WideString 的转换的
if UpperCase(strMD5) <> UpperCase(Trim(Emd5.Text)) then
unitdialog.Badbox('数字签名核对失败!')
else
unitdialog.Badbox('数字签名核对一致!');
end;
// 顺便BS一下大小写没规律的