THashMD5,THashSHA1,THashBobJenkins,TIdHashMessageDigest5的用法

 
  1. unit Unit1;  
  2.   
  3. interface  
  4.   
  5. uses  
  6.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,  
  7.   System.Classes, Vcl.Graphics,Soap.EncdDecd,IdHashMessageDigest,IdSSLOpenSSL,IdSSLOpenSSLHeaders,  
  8.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, System.Hash;  
  9.   
  10. type  
  11.   TForm1 = class(TForm)  
  12.     Button1: TButton;  
  13.     Button2: TButton;  
  14.     Button3: TButton;  
  15.     Button4: TButton;  
  16.     procedure Button1Click(Sender: TObject);  
  17.     procedure Button2Click(Sender: TObject);  
  18.     procedure Button3Click(Sender: TObject);  
  19.     procedure Button4Click(Sender: TObject);  
  20.   private  
  21.     { Private declarations }  
  22.   public  
  23.     { Public declarations }  
  24.   end;  
  25.   TMD5 = class(TIdHashMessageDigest5);  
  26.   
  27. var  
  28.   Form1: TForm1;  
  29.   
  30. implementation  
  31.   
  32. {$R *.dfm}  
  33.   
  34. function MyFun(p: Pointer): Integer; stdcall;  
  35. var  
  36.   i: Integer;  
  37. begin  
  38.   for i := to 500 do  
  39.   begin  
  40.     Form1.Canvas.Lock;  
  41.     Form1.Canvas.TextOut(10, 10, 'threadid=' + IntToStr(GetCurrentThreadId()) +  
  42.       ',' + IntToStr(i));  
  43.     Form1.Canvas.Unlock;  
  44.     Sleep(10);  
  45.   end;  
  46.   
  47.   Result := 0;  
  48. end;  
  49.   
  50. procedure MyPro();  
  51. var  
  52.   i: Integer;  
  53. begin  
  54.   for i := to 500 do  
  55.   begin  
  56.     Form1.Canvas.Lock;  
  57.     Form1.Canvas.TextOut(10, 10, 'threadid=' + IntToStr(GetCurrentThreadId()) +  
  58.       ',' + IntToStr(i));  
  59.     Form1.Canvas.Unlock;  
  60.     Sleep(10);  
  61.   end;  
  62. end;  
  63.   
  64. procedure TForm1.Button1Click(Sender: TObject);  
  65. begin  
  66.   ShowMessage('xxx');  
  67.   MessageBox(0, 'nn', 'mmm', 0);  
  68.   Application.MessageBox('xxx', 'system', 0);  
  69.   
  70. end;  
  71.   
  72. procedure TForm1.Button2Click(Sender: TObject);  
  73. begin  
  74.   //  
  75.   TThread.CreateAnonymousThread(MyPro).Start;  
  76. end;  
  77.   
  78. procedure TForm1.Button3Click(Sender: TObject);  
  79. var  
  80.   data, key: string;  
  81. begin  
  82.   data := 'xxx';  
  83.   key := 'key';  
  84.   ShowMessage(THashMD5.Create.GetHashString(data));  
  85.   ShowMessage(THashMD5.Create.GetHMAC(data, key));  
  86.   ShowMessage(THashSHA1.Create.GetHashString(data));  
  87.   ShowMessage(THashSHA1.Create.GetHMAC(data, key));  
  88.   
  89.   ShowMessage(THashBobJenkins.Create.GetHashString(data));  
  90.   
  91.   ShowMessage(THash.GetRandomString(10));  
  92.   ShowMessage(THash.DigestAsString(TEncoding.UTF8.GetBytes(data)));  
  93. end;  
  94.   
  95. procedure TForm1.Button4Click(Sender: TObject);  
  96. var  
  97.   data, key: string;  
  98. begin  
  99.   data:='fuck';  
  100.   data:=EncodeString(data) ;  
  101.   ShowMessage(data);  
  102.   ShowMessage(DecodeString(data));  
  103.   ShowMessage(TMD5.Create.HashStringAsHex(data));  
  104.   
  105.   
  106. end;  
  107.   
  108. end.  
 
 http://blog.csdn.net/earbao/article/details/46532077
原文地址:https://www.cnblogs.com/findumars/p/5338895.html