日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java中md5怎么实现的_java中md5算法的实现

發(fā)布時(shí)間:2024/9/27 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中md5怎么实现的_java中md5算法的实现 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

/**

* MD5的算法在RFC1321 中定義

* 在RFC 1321中,給出了Test suite用來(lái)檢驗(yàn)?zāi)愕膶?shí)現(xiàn)是否正確:

* MD5 ("") = d41d8cd98f00b204e9800998ecf8427e

* MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661

* MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72

* MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0

* MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b

*

* @author haogj

*

* 傳入?yún)?shù):一個(gè)字節(jié)數(shù)組

* 傳出參數(shù):字節(jié)數(shù)組的 MD5 結(jié)果字符串

*/

public class MD5 {

public static String getMD5(String pwd) {

byte[] source = pwd.getBytes();

String s = null;

char hexDigits[] = { // 用來(lái)將字節(jié)轉(zhuǎn)換成 16 進(jìn)制表示的字符

'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};

try

{

java.security.MessageDigest md = java.security.MessageDigest.getInstance( "MD5" );

md.update( source );

byte tmp[] = md.digest(); // MD5 的計(jì)算結(jié)果是一個(gè) 128 位的長(zhǎng)整數(shù),

// 用字節(jié)表示就是 16 個(gè)字節(jié)

char str[] = new char[16 * 2]; // 每個(gè)字節(jié)用 16 進(jìn)制表示的話,使用兩個(gè)字符,

// 所以表示成 16 進(jìn)制需要 32 個(gè)字符

int k = 0; // 表示轉(zhuǎn)換結(jié)果中對(duì)應(yīng)的字符位置

for (int i = 0; i < 16; i++) { // 從第一個(gè)字節(jié)開(kāi)始,對(duì) MD5 的每一個(gè)字節(jié)

// 轉(zhuǎn)換成 16 進(jìn)制字符的轉(zhuǎn)換

byte byte0 = tmp[i]; // 取第 i 個(gè)字節(jié)

str[k++] = hexDigits[byte0 >>> 4 & 0xf]; // 取字節(jié)中高 4 位的數(shù)字轉(zhuǎn)換,

// >>> 為邏輯右移,將符號(hào)位一起右移

str[k++] = hexDigits[byte0 & 0xf]; // 取字節(jié)中低 4 位的數(shù)字轉(zhuǎn)換

}

s = new String(str); // 換后的結(jié)果轉(zhuǎn)換為字符串

}catch( Exception e ) {

e.printStackTrace();

}

return s;

}

public static void main( String xu[] )

{ // 計(jì)算 "a" 的 MD5 代碼,應(yīng)該為:0cc175b9c0f1b6a831c399e269772661

System.out.println( MD5.getMD5("a"));

}

}

總結(jié)

以上是生活随笔為你收集整理的java中md5怎么实现的_java中md5算法的实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。