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 字串相同,若相同即表輸入密碼正確。
沒有留言:
張貼留言