最簡單的計算MD5方法


原來寫過一個計算MD5的程序,是用了一個叫MD5.pas的單元,使用起來還算簡單,但還有更簡單的辦法,安裝了indy就會有IdHashMessageDigest單元(delphi 7默認安裝indy)
有篇文章教怎么用IdHashMessageDigest計算字符串md5,計算文件md5卻沒有說,在這里補充一下,先看計算函數:
function TIdHashMessageDigest4.HashValue(AStream: TStream): T4x4LongWordRecord;參數類型是一個流就可以返回T4x4LongWordRecord類型的值,使用function TIdHash128.AsHex(const AValue: T4x4LongWordRecord): string;把T4x4LongWordRecord轉換為字符串就可以顯示出來,到這里就簡單了,把一個文件以流的方式讀取,使用HashValue就計算出MD5了,流的使用很簡單,TFileStream.Create(const FileName: string; Mode: Word);參數FileName就是文件的路徑,Mode就是打開方式,使用fmOpenRead以讀方式打開,如果要計算大型文件最好使用線程來操作.以下是實例代碼:

在uses添加IdHashMessageDigest
procedure TForm1.Button1Click(Sender: TObject);
var
  mymd5:TIdHashMessageDigest5;
begin
mymd5:=TIdHashMessageDigest5.Create;
ShowMessage(mymd5.AsHex(mymd5.HashValue('admin')));//計算字符串admin的MD5
ShowMessage(Copy(mymd5.AsHex(mymd5.HashValue('admin')),9,16));//獲取16位字符串MD5
ShowMessage(mymd5.AsHex(mymd5.HashValue(TFileStream.Create('e:\VRMPVOL_CNsp2.iso',fmOpenRead))));//計算文件MD5
mymd5.Free;
end; 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM