MD5 Hashing in Delphi
Delphi 7 的做法:
記得要 uses IdHashMessageDigest, idHash
在 Form 上各放一個 TEdit 和 TButton,函式 MD5 會將 Edit1 內的文字運算生成 MD5 字串
- uses
- ......, IdHashMessageDigest, idHash;
- implementation
- {$R *.dfm}
- function MD5(const fileName: string): string;
- var
- idmd5: TIdHashMessageDigest5;
- begin
- idmd5 := TIdHashMessageDigest5.Create;
- try
- result := idmd5.AsHex(idmd5.HashValue(filename)) ;
- finally
- idmd5.Free;
- end;
- end;
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- Caption := MD5(Edit1.Text);
- end;
Delphi XE6 的做法:
- function MD5(const text: string): string;
- var
- md5: TIdHashMessageDigest5;
- begin
- try
- md5 := TIdHashMessageDigest5.Create;
- Result := md5.HashStringAsHex(text); // 預設是產生大寫英文, 若要全小寫,則是 Lowercase(md5.HashStringAsHex(text))
- finally
- md5.Free;
- end;
- end;
要注意 MD5 是不可逆的,所以無法單純以運算方式還原回之前的字串,也因此極適合用來儲存密碼存在資料庫內,即使有人入侵資料庫,也不能竊取密碼。
程式上的應用則為將使用者登入時所輸入的密碼做 MD5 運算,再比對是否與資料庫內的 MD5 字串相同,若相同即表輸入密碼正確。
沒有留言:
張貼留言