关于Delphi XE5中SHA1、SHA256、SHA384、SHA512、MD5的加密计算

一直用的D7,但是最近手头有个项目是跟WebService对接的,D7版本低了,调回的接口中没有接口函数,所以安装了一版Delphi XE5,试用了几天,还好用,但是研究的还不深。

 

项目对接中有个加密算法是SHA256的,所以在网上也找了相关的资料,自己写了一个,测试了几组数据,跟网上的SHA计算工具能对上,当前测试的数据不多。相关的计算函数如下:

procedure TMainFrm.Button1Click(Sender: TObject);
var
  Str: String;
  SHA256: TIdHashSHA256;
begin
  Str := Trim(edtValue.Text);
  if Str = '' then
  begin
    MessageBox(Handle, 'String cannot be empty!', 'Hint', MB_OK + MB_ICONASTERISK);
    edtValue.SetFocus;
    Exit;
  end;

  mm1.Text := Calc_SHA1(Str);
  mmMD5.Text := Calc_MD5(Str);

  if not IdSSLOpenSSLHeaders.Load() then
  begin
   MessageBox(Handle, 'IdSSLOpenSSLHeaders load failure!', 'Hint', MB_OK + MB_ICONASTERISK);
    Exit;
  end;

  mm256.Text := Calc_SHA256(Str);
  mm384.Text := Calc_SHA384(Str);
  mm512.Text := Calc_SHA512(Str);
end;

function TMainFrm.Calc_SHA1(s: string): String;
begin
  with TIdHashSHA1.Create do
  try
    Result := LowerCase(HashBytesAsHex(TidBytes(Bytesof(s))));
  finally
    Free;
  end;
end;

function TMainFrm.Calc_SHA256(s: string): String;
begin
  Result := '';

  with TIdHashSHA256.Create do
  try
    Result := LowerCase(HashStringAsHex(s));
  finally
    Free;
  end;
end;

function TMainFrm.Calc_SHA384(s: string): String;
begin
  with TIdHashSHA384.Create do
  try
    Result := LowerCase(HashStringAsHex(s));
  finally
    Free;
  end;
end;

function TMainFrm.Calc_SHA512(s: string): String;
begin
  with TIdHashSHA512.Create do
  try
    Result := LowerCase(HashStringAsHex(s));
  finally
    Free;
  end;
end;

function TMainFrm.Calc_MD5(s: string): String;
begin
  with TIdHashMessageDigest5.Create do
  try
    Result := LowerCase(HashStringAsHex(S));
  finally
    Free;
  end;
end;
 

以上只是对字符串的加密算法,文件之类的等空闲再研究。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值