茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1729831 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_0181.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

爪哇咖啡屋 : [轉貼]Java 的 MD5 加密

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15773
[轉貼]Java 三行代码搞定 MD5 加密

Java三行代码搞定MD5加密

Get MD5 Hash In A Few Lines Of Java


 /**
* 對字符串md5加密
*
* @param str
* @return
*/
public String getMD5(String str) {
String ret = null;
try {
// 生成一個MD5加密計算摘要
MessageDigest md = MessageDigest.getInstance("MD5");
// 計算md5函數
md.update(str.getBytes());
// digest()最後確定返回md5 hash值,返回值為8為字符串。因為md5 hash值是16位的hex值,實際上就是8位的字符
// BigInteger函數則將8位的字符串轉換成16位hex值,用字符串來表示;得到字符串形式的hash值
ret = new BigInteger(1, md.digest()).toString(16);
} catch (Exception e) {
//throw new SpeedException("MD5加密出現錯誤");
e.printStackTrace();
}
return ret;
}


java.math.BigInteger.toString(int radix)方法實例

java.math.BigInteger.toString(int radix) 返回此BigInteger在給定的基數的字符串表示形式。如果基數是從Character.MIN_RADIX到Character.MAX_RADIX包容的範圍內,它會默認為10(因為Integer.toString的情況下)。

聲明

以下是java.math.BigInteger.toString()方法的聲明

public String toString(int radix)

參數

radix – 該字符串表示形式的基數

返回值

此方法返回此BigInteger在給定的基數的字符串表示形式。


BigInteger(byte[] val)
BigInteger的大小为val的顺序拼接结果

byte[] val = new byte[]{0x11,0x22,0x33};
BigInteger bigInteger = new BigInteger(val);
System.out.println(bigInteger.toString(16)); //16进制输出 , 结果 : 112233

BigInteger(String val, int radix)
得到大小为val , 以 radix 为基数的 BigInteger

System.out.println(bigInteger.toString(16));//输出结果 1f
System.out.println(bigInteger.toString(10));//输出结果 31


BigInteger b = new BigInteger(s1,16);           // 16进制转成大数类型
String s2 = b.toString(16); // 大数类型转成16进制

上列的範例輸入結果:

s1: 126656864e144ad88d7ff96badd2f68b
s2: 126656864e144ad88d7ff96badd2f68b

如果前2碼修改為00,則:

s1: 006656864e144ad88d7ff96badd2f68b
s2: 6656864e144ad88d7ff96badd2f68b

所以,最上面的例子,前面要補滿0 才不會出錯。


原文出處: Java三行代码搞定MD5加密 – Max的程式語言筆記
前一個主題 | 下一個主題 | | | |

討論串




Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|