在delphi自帶的indy控制項中其實是提供了md2,md4,md5物件的,我們可以直接使用它們來完成md5的簽名演算法。而不需要再去找其它的dll或是pas了。
在uses單元中引用 idhashmessagedigest,idglobal, idhash 單元,再寫如下**即可以達到md5的實現。
示例**
[html]view plain
copy
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簽名字串。
在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...