• delphi md5算法


    (2015-08-14 15:18)
    标签: 

    md5

    分类: DelphiXE8
    XE8新带了一个单元文件:System.Hash,其实,实现了三个类,分别是:
    THash
    THashMD5
    THashSHA1
    原生实现对MD5及SHA1的支持!

    以MD5为例,很容易取一个串的MD5值。

    procedure TForm40.Button2Click(Sender: TObject);
    var
      md5:THashMD5;
    begin

      Label1.Text:=md5.GetHashString(edit1.Text);//生成32字符长度的MD5
    //也可以这样:
        md5:=THashMD5.Create;
        md5.Update(edit1.Text);
        Label1.Text:=md5.HashAsString;
    end;

    THashMD5是记录类型,所以不用释放建立的实例。

    THashMD5同时还提供了HMAC支持:

    Label1.Text:=md5.GetHMAC(Edit1.Text,'红鱼儿');//生成32字符长度的HMAC.

    这不能不说是XE8的进步,复杂的MD5等算法,对于Delphi开发者也可以直接使用了,简单、方便!
    后记:XE9增加了SHA2支持!

    附:Hash 算法及其应用
    ---------------
    什么是 Hash
    Hash 的
    阅读(135) ┆ 评论(0) ┆ 转载(1) ┆ 收藏(0)
     
    标签: 

    delphi

     

    it

    分类: DelphiXE8
    将数字转换大写的函数,改自这里,原文在Delphi XE8下不能正常转换。
    Function MoneyConvert(mmje:real): string;
    const
      s1: string = '零壹贰叁肆伍陆柒捌玖';
      s2: string = '分角元拾佰仟万拾佰仟亿拾佰仟万';
      Function StrTran(const S, s1, s2: string): string;
      begin
          Result := S.Replace(s1, s2, [rfReplaceAll]);
      end;
    var
      S, dx: string;
      i, Len: Integer;
    begin
      if mmje < 0 then
      begin
         dx := '负';
          mmje := -mmje;
      end;
      S := Format('%.0f', [mmje * 100]);
      Len := s.Length;
      for i := 0 to Len-1 do
        dx := dx + s1.Substring(Ord(s.Chars[i]) - Ord('0') , 1) +s2.substring(Len-i-1,1);

      dx := StrTra
    阅读(119) ┆ 评论(0) ┆ 转载(0) ┆ 收藏(0)
     
      分类: DelphiXE8
    在自定义的Record类型中,使用string,不小心会造成内存泄漏,用下面的写法,则不会,在Xe8下测试通过。

    type

    PMyRecord=^TMyRecord;
    TMyRecord=record
      i:Integer;
      s:string;
    end;

    var
      p:PMyRecord;

    begin
      p:=new(PMyRecord);//分配内存
      p.i:=100;//这里我简写了,也可写成p^.i
      p.s:='aaaaaa';
      dispose(p);//释放内存,这里是重点,p已经是PMyRecord类型,所以不用转换,如果是一个无类型的指针,则要做类型转换,如dispose(PMyRecord(p));

    end;
  • 相关阅读:
    c语言中编写标准身高体重对照表
    c语言实现约数的枚举
    c语言中循环输出1234567890
    c语言中为九九乘法增加横纵标题
    c语言中多重循环
    c语言中绘制金字塔
    c语言中双重循环
    c语言中绘制长方形
    当当网代码1
    当当网代码4
  • 原文地址:https://www.cnblogs.com/HuiLove/p/4756712.html
Copyright © 2020-2023  润新知