Delphi6 xe5 中的MD5實現方法

2021-06-29 06:11:29 字數 2336 閱讀 8762

在delphi自帶的indy控制項中其實是提供了md2,md4,md5物件的,我們可以直接使用它們來完成md5的簽名演算法。而不需要再去找其它的dll或是pas了。

在uses單元中引用 idhashmessagedigest,idglobal, idhash 單元,再寫如下**即可以達到md5的實現。

示例**

procedure tform1.button1click(sender: tobject);

varmymd5: tidhashmessagedigest5;

digest: t4x4longwordrecord;

begin

mymd5 := tidhashmessagedigest5.create;

digest := mymd5.hashvalue('');

showmessage('32: ' + mymd5.ashex(digest));  //顯示32個字元長度的md5簽名結果

showmessage('16: ' + copy(mymd5.ashex(digest), 9, 16));   //顯示16個字元長度的md5簽名結果

end;

說明:mymd5.hashvalue 函式中可以是乙個字串或是乙個流物件,它返回的結果型別為 t4x4longwordrecord 的md5簽名後結果

mymd5.ashex  函式是將t4x4longwordrecord的md5簽名轉換成為十六進製制的md5簽名字串。

在delphi自帶的indy控制項中其實是提供了md2,md4,md5物件的,我們可以直接使用它們來完成md5的簽名演算法。而不需要再去找其它的dll或是pas了。 

在uses單元中引用 idhashmessagedigest,idglobal, idhash 單元,再寫如下**即可以達到md5的實現。

示例**

procedure tform1.button1click(sender: tobject);

var

mymd5: tidhashmessagedigest5;

digest: t4x4longwordrecord;

begin

mymd5 := tidhashmessagedigest5.create;

digest := mymd5.hashvalue('');

showmessage('

32:

' + mymd5.ashex(digest)); //顯示32個字元長度的md5簽名結果

showmessage('

16:

' + copy(mymd5.ashex(digest), 9, 16)); //顯示16個字元長度的md5簽名結果

end;

說明:

mymd5.hashvalue 函式中可以是乙個字串或是乙個流物件,它返回的結果型別為 t4x4longwordrecord 的md5簽名後結果

mymd5.ashex 函式是將t4x4longwordrecord的md5簽名轉換成為十六進製制的md5簽名字串。

-----------------------------------------以上的方法適合indy9---------------------------------------------

以下為indy10的用法用delphi2009或delphi2010時以上就會報錯了.

type

***5 = class(tidhashmessagedigest5);

function strtomd5(s: string): string; overload;

function strtomd5(s: string; l: integer): string; overload;

implementation

function strtomd5(s: string): string;

varmd5encode: ***5;

begin

md5encode:= ***5.create;

try //result := md5encode.ashex(md5encode.hashvalue(s)); // indy9的寫法

result := md5encode.hashstringashex(s); // indy10中可以直接hashstringashex

finally

md5encode.free;

end;

end;

function strtomd5(s: string; l: integer): string;

begin

result := copy(strtomd5(s), 5, l);

end;

Delphi6 xe5 中的MD5實現方法

在delphi自帶的indy控制項中其實是提供了md2,md4,md5物件的,我們可以直接使用它們來完成md5的簽名演算法。而不需要再去找其它的dll或是pas了。在uses單元中引用 idhashmessagedigest,idglobal,idhash 單元,再寫如下 即可以達到md5的實現。示...

php 變數的md5加密,PHP中的MD5加密

php中的md5加密 2005 02 17 enet ciweek 綜述 密碼學是研究編制密碼 我們簡稱為加密 encode 和破譯密碼 我們稱之為解密 decode 的技術科學。研究密碼變化的客觀規律,應用於編制密碼以保守通訊秘密的,稱為編碼學 應用於破譯密碼以獲取通訊情報的,稱為破譯學,總稱密碼...

c 中的md5加密

實際上就是拿簽名後的字串比較哦 有個專門的命名空間 system.security.cryptography code region 數字簽名 md5 public static string md5helper string origin endregion c 中的md5加密,很有用的類 usi...