MessageDigest實現MD5加密演算法

2021-10-07 05:09:10 字數 3497 閱讀 3779

字串的md5加密演算法

文字的md5加密工具類

public

class md5

;public

class md5

// 返回形式為數字和字串

private

static

string

bytetoarraystring

(byte bbyte)

int id1 = iret /16;

int id2 = iret %16;

return strdigits[id1]

+ strdigits[id2];}

// 返回形式只為數字

private

static

string

bytetonum

(byte bbyte)

return

string

.valueof

(iret);}

// 將位元組陣列轉換成為16進製制的字串

private

static

string

bytetostring

(byte

bbyte)

return stringbuffer.

tostring()

;}// 獲取md5值

public

static

string

ge***5code

(string strobj)

catch

(nosuchalgorithmexception e)

return resultstring;

}}

/**

* 使用指定的byte陣列更新摘要

* * @param input 指定的byte陣列

*/public

void

update

(byte

input)

;

/**

* 通過執行諸如填充之類的最終操作完成hash計算.

* 在呼叫此方法之後,摘要被重置

* * @return byte hash計算後的byte陣列

*/public

byte

digest()

;

/**

* 比較兩個摘要的相等性.做簡單的位元組比較

* * @param digesta 比較的摘要位元組陣列a

* @param digestb 比較的摘要位元組陣列b

* @return boolean 是否相等

*/public

static

boolean

isequal

(byte

digesta,

byte

digestb)

;

/**

* 返回實現指定摘要演算法的messagedigest物件

* * @param algorithm 請求的演算法的名稱

* @param provider 提供者名稱

* @return messagedigest 指定摘要演算法的messagedigest物件

* @throws nosuchalgorithmexception 當指定的請求演算法名稱不存在時丟擲異常

*/public

static

messagedigest

getinstance

(string algorithm)

throws

nosuchalgorithmexception

;/**

* 返回實現指定摘要演算法的messagedigest物件

* * @param algorithm 請求演算法的名稱

* @return messagedigest 指定摘要演算法的messagedigest物件

* @throws nosuchalgorithmexception 當指定的請求演算法名稱不存在時丟擲異常

*/public

static

messagedigest

getinstance

(string algorithm,

string provider)

throws

nosuchalgorithmexception

,nosuchproviderexception

;

/**

* 將字串轉換為md5

*/public

class

parsemd5

stringbuffer.

(integer

.tohexstring

(bt));

} restr = stringbuffer.

tostring()

;}catch

(nosuchalgorithmexception e)

return restr;

}// 將字串轉換為32位大寫的md5

public

static

string

parsestrtomd5u32

(string str)

return resstr;

}// 將字串轉換為16位小寫的md5

public

static

string

parsestrtomd5l16

(string str)

return restr;

}// 將字串轉換為16位大寫的md5

public

static

string

parsestrtomd5u16

(string str)

return restr;

}}

public

class

md5util

try stringbuffer.

(integer

.tohexstring

(bt));

} restr = stringbuffer.

tostring()

;}catch

(nosuchalgorithmexception e)

return restr;

}// 將文字轉換為32位大寫的md5

public

static

string

texttomd5u32

(string plaintext)

string result =

texttomd5l32

(plaintext)

; result = result.

touppercase()

;return result;

}}

MessageDigest 使用說明

messagedigest 類為應用程式提供資訊摘要演算法的功能,如 md5 或 sha 演算法。資訊摘要是安全的單向雜湊函式,它接收任意大小的資料,並輸出固定長度的雜湊值。messagedigest 物件開始被初始化。該物件通過使用 update 方法處理資料。任何時候都可以呼叫 reset 方法...

MessageDigest 使用注意,併發問題

說一下最近在開發過程中遇到加密相關的問題,先引用一段md5的解釋。message digest algorithm md5 中文名為訊息摘要演算法第五版 為計算機安全領域廣泛使用的一種雜湊函式,用以提供訊息的完整性保護。該演算法的檔案號為rfc 1321 r.rivest,mit laborator...

MessageDigest的功能及用法

messagedigest 類為應用程式提供資訊摘要演算法的功能,如md5 and sha.資訊摘要是安全的單向雜湊函式,它接收任意大小的資料,並輸出固定長度的雜湊值。messagedigest 物件開始被初始化。該物件通過使用 update 方法處理資料。任何時候都可以呼叫 reset 方法重置摘...