2009-01-29

【Delphi】生成 MD5 字串

參考資料 ----
MD5 Hashing in Delphi


Delphi 7 的做法:


記得要 uses IdHashMessageDigest, idHash

Form 上各放一個 TEditTButton,函式 MD5 會將 Edit1 內的文字運算生成 MD5 字串


  1.  
  2. uses
  3. ......, IdHashMessageDigest, idHash;
  4.  
  5. implementation
  6.  
  7. {$R *.dfm}
  8.  
  9. function MD5(const fileName: string): string;
  10. var
  11. idmd5: TIdHashMessageDigest5;
  12. begin
  13. idmd5 := TIdHashMessageDigest5.Create;
  14. try
  15. result := idmd5.AsHex(idmd5.HashValue(filename)) ;
  16. finally
  17. idmd5.Free;
  18. end;
  19. end;
  20.  
  21. procedure TForm1.Button1Click(Sender: TObject);
  22. begin
  23. Caption := MD5(Edit1.Text);
  24. end;
  25.  


Delphi XE6 的做法:


  1.  
  2. function MD5(const text: string): string;
  3. var
  4. md5: TIdHashMessageDigest5;
  5. begin
  6. try
  7. md5 := TIdHashMessageDigest5.Create;
  8. Result := md5.HashStringAsHex(text); // 預設是產生大寫英文, 若要全小寫,則是 Lowercase(md5.HashStringAsHex(text))
  9. finally
  10. md5.Free;
  11. end;
  12. end;
  13.  


要注意 MD5不可逆的,所以無法單純以運算方式還原回之前的字串,也因此極適合用來儲存密碼存在資料庫內,即使有人入侵資料庫,也不能竊取密碼。

程式上的應用則為將使用者登入時所輸入的密碼做 MD5 運算,再比對是否與資料庫內的 MD5 字串相同,若相同即表輸入密碼正確。

沒有留言:

張貼留言